我正在 Mongoose 中创建这样的结构:
var Access = new Schema({
userId : { type: ObjectId, unique: true },
key : { type: String, index: true },
isOwner : { type: Boolean, index: true },
});
mongoose.model('Access', Access);
var Workspace = new Schema({
name : { type: String, lowercase: true, unique: true},
activeFlag : Boolean,
settings : {
welcomeMessage : String,
invoiceTemplate : String,
longName : String,
defaultCountry : String,
countryId : { type: ObjectId, index: true },
},
access : [ Access ],
});
mongoose.model('Workspace', Workspace);
添加一些文档后,我看到了结果:
{ "activeFlag" : true,
"name" : "w7",
"_id" : ObjectId("5036131f22aa014c32000006"),
"access" : [
{ "user": "merc",
"key" : "673642387462834",
"isOwner" : true,
"_id" : ObjectId("5036131f22aa014c32000007")
}
],
"__v" : 0
}
我_id
对子文档中的内容感到困惑,如果我将它添加为子结构而不是子模式,这似乎不会发生。所以问题:
1)那_id
是从哪里来的?猫鼬的司机在做吗?如果是这样,我怎样才能使用直接的 Mongodb 达到相同的行为?只需添加一个 ObjectId 字段?
2) 什么时候使用子文档,什么时候只使用数据结构?
3) 我还没有开始使用我的 Web 应用程序的重要部分。但是,如果您允许 JsonRest 访问文档中的子记录,那么该 ID 不是真的存在吗?我的意思是真的很有用?
一如既往地感谢你!
默克。