mongoose是否提供了一种从上一个查询'result?
中查找所有引用文档的方法例如:
Product
.find(query)
.exec(function(err, results) {
...
Product
.find({
'$or': [
// get all products where _id is in results.associatedProducts[]
]
})
...
});
答案 0 :(得分:1)
我无法找到一种用猫鼬本地做到这一点的方法,请参阅下面的工作解决方案。
Product
.find(query)
.exec(function(err, products) {
...
var associatedSoftware = products.reduce(function(memo, current) {
if(current.features && current.features.associatedSoftware) {
return memo.concat(current.features.associatedSoftware.map(function(item) {
return item._id;
}));
}
return memo;
}, []);
Product.find({
'$or': [
...
{ '_id': { '$in': associatedSoftware } }
...
]
})
.exec(function(err, associated) {
...
});
});
答案 1 :(得分:0)
是
您可以使用query population。
Product
.find(query)
.populate('associatedProducts')
.exec(function(err, results) {
// ...
});
这将返回一个格式如下的对象:
var product = {
foo: bar,
associatedProducts: [
// Here are the associated products
{
// Product Object
},
{
// Product Object
},
{
// Product Object
}
]
};