Intereting Posts

有一个简单的方法来获得嵌套的儿童参考?

我有这样的架构(简化)

var Language = new Schema({ name: String }); var PartOfSpeech = new Schema({ name: String, language: { type: ObjectId, ref: "Language" } }); var Attribute = new Schema({ name: String, partOfSpeech: { type: ObjectId, ref: "PartOfSpeech" } }); 

有没有简单的方法来查询MongoDB,如果给定一个语言的_id ,它将返回一个结果集,其中包含引用该语言的所有PartOfSpeech条目,以及引用每个词类的所有Attribute条目?

结果集看起来像这样:

 [ { name: "Noun", attributes: [ { name: "Plural" }, { name: "Possessive" } ] }, { name: "Verb", attributes: [ { name: "Past" }, { name: "Future" } ] } ] 

有没有一种简单的方法在Mongoose中做到这一点?

Solutions Collecting From Web of "有一个简单的方法来获得嵌套的儿童参考?"

像这样的东西

 PartOfSpeech.find({ language: langId }, function (err, parts) { if (err) return done(err); var pending = parts.length; if (0 === pending) return done(null, parts); parts.forEach(function (part) { Attr.find({ partOfSpeech: part }, function (err, attributes) { if (err) return done(err, parts); part.attributes = attributes; if (--pending) return; done(null, parts) }) }); })