我有一个像这样的架构(简化)
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 中是否有一种简单的方法可以做到这一点?
最佳答案
类似这样的事情
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)
})
});
})
关于node.js - 有没有一种简单的方法来获取嵌套子级引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12082496/