如果我有这个架构
food = {
name : String,
favouriteFoods : []
}
每个 favoritefood 元素都是一个像这样的对象
var favoritefood = new Object;
favoritefood.cuisine = 'indian';
favoritefood.flavor = 'spicy';
是否可以查询 mongoose 来获取所有 favoritefood 对象的 flavor 属性设置为“辣”?
最佳答案
您需要执行聚合
操作才能将所有最喜欢的辛辣食物按名称分组。
匹配
所有食物,至少有一种最喜欢的辛辣食物。展开
最爱的食物阵列。匹配
所有最喜欢的辛辣食物。按食物名称分组
。项目
它们。
代码:
Food.aggregate([
{$match:{"favouriteFoods.flavor":"spicy"}},
{$unwind:"$favouriteFoods"},
{$match:{"favouriteFoods.flavor":"spicy"}},
{$group:{"_id":"$name","spicyFoods":{$push:"$favouriteFoods"}},
{$project:{"_id":0,"name":"$_id","spicyFoods":1}}
],function(err,res){
// console.log(res);
})
关于javascript - 从 Mongoose 中具有特定属性的数组中获取所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27116069/