2
我创造了猫鼬像这样的结构的MongoDB的文档中的子对象_id:(用猫鼬)
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
从哪里来? Mongoose的司机是否在做这件事?如果是这样,我怎样才能达到使用直Mongodb的相同行为?只需添加一个ObjectId字段?
2) 您何时使用子文档,以及何时只使用数据结构?
3) 我还没有开始使用我的web应用程序的严重部分。但是,如果您允许JsonRest访问文档中的子记录,那么是否会出现真的,我的意思是真的有用吗?
谢谢你一如既往!
Merc。
对不起,我的坏...该userId实际上指向一个不同的表中的ID。所以实际上没有重复,猫鼬增加的_id很方便!也许用这个新信息更新答案 - 谢谢! – Merc
我确实解释了它来自哪里以及如何在直接的MongoDB中生成它 - 您还在寻找哪些其他信息?何时使用子文档问题已被问及很多次(查找嵌入与链接相似)。 –
答案很好,但是我的数据没有重复,所以也许会拿出一些关于重复的内容,这些内容不会成为核心问题的一部分。谢谢你的回答! – Merc