Javascript 在数组中查找对象,以返回对象数据
我在mongo数据库中有包含每日条目的条目,我试图在数组中找到一个特定条目。例如,尝试在使用mongoose的日期为该用户查找可口可乐Javascript 在数组中查找对象,以返回对象数据,javascript,node.js,mongodb,mongoose,database,Javascript,Node.js,Mongodb,Mongoose,Database,我在mongo数据库中有包含每日条目的条目,我试图在数组中找到一个特定条目。例如,尝试在使用mongoose的日期为该用户查找可口可乐 "_id": ObjectId("ID"), "user_id": ObjectId("ID"), "date": today, "snacks": [ { "nutrients": [{...}], "servings": 1, "name": "Coca-Cola" } ] user_food.find({user_id
"_id": ObjectId("ID"),
"user_id": ObjectId("ID"),
"date": today,
"snacks":
[
{
"nutrients": [{...}],
"servings": 1,
"name": "Coca-Cola"
}
]
user_food.find({user_id : req.session.user_id, date: today}, {snacks:{[name:{"Coca-Cola"}]}}
我可以通过以下查询按日期查询和检索完整条目:
user_food.findOne({user_id : req.session.user_id, date: today}, function (err, diary) {...});
我唯一的问题是仅通过名称获取特定的条目对象:snack-name。您可以将查询更改为如下所示:
user_food.find({user_id : req.session.user_id, date: today, 'snacks.name': 'Coca-Cola' })
这将只找到零食名称为“可口可乐”的文档。如果您只想发回相关信息,则可以投影它对不起,如果我不清楚,我只想获得
{“营养素”:[{…}],“服务”:1,“名称”:“可口可乐”}
从查询中返回。您可以筛选零食数组,该数组将返回仅与名称相关的数组(本例中为可口可乐)obj。snackItem.filter((snackItem)=>snackItem.name==“可口可乐”)