在数组中查找对象,以返回对象数据

时间:2017-03-02 16:42:22

标签: 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 : 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。

1 个答案:

答案 0 :(得分:0)

您可以将查询更改为:

user_food.find({user_id : req.session.user_id, date: today, 'snacks.name': 'Coca-Cola' })

这只会找到小吃名称为“可口可乐”的文件,如果您只希望发回相关信息,则可以将其投影