私はマングースでこのような構造を作成しています:
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アプリケーションの重要な部分をまだ始めていません。ただし、そのIDは実際には存在しないのでしょうか。たとえば、JsonRestにドキュメント内のサブレコードへのアクセスを許可する場合に非常に役立ちますか?
いつもありがとう!
メルク。