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