当我将Match打印到网页时,我有2个Schema并生成以下数据,但是这个team []字段,我相信它是从开发的前一个点开始的,我已经设法得到了家庭团队保存到正确的地方,我怎么摆脱这个领域,因为它是不必要的?
Team Schema
var Team = new Schema({
'key' : {
unique : true,
type : Number,
default: getId
},
'name' : { type : String,
validate : [validatePresenceOf, 'Team name is required'],
index : { unique : true }
}
});
匹配架构
var Match = new Schema({
'key' : {
unique: true,
type: Number,
default: getId
},
'hometeam' : { type: Schema.ObjectId, ref: 'Team' },
'awayteam' : { type: Schema.ObjectId, ref: 'Team' }
});
匹配输出
[
{
"_id": "5112aeaf064432060d000002",
"team": [
{
"key": 1360178863022,
"_id": "5112aeaf064432060d000003"
}
],
"__v": 0,
"key": 1360178863022
},
{
"hometeam": "5106e7ef9afe3a430e000007",
"_id": "5113b7ca71ec596125000005",
"__v": 0,
"key": 1360246730427
}
]
答案 0 :(得分:0)
Mongoose有一个模式可以验证,但MongoDB没有。 Mongo是无模式的,这意味着它完全不知道你的数据应该代表什么。因此,如果您的架构允许在过去进行此类更改,则您有责任清理所造成的混乱。您可以只对旧方案的值进行查询,并在其上调用remove来删除文档,但除此之外,它主要是手工劳动(或放弃所有内容 - 这对于开发也很有用)。