Database 如何在mongoDB中使用数组进行查找

Database 如何在mongoDB中使用数组进行查找,database,mongodb,nosql,Database,Mongodb,Nosql,今天我开始与MongoDB合作。我创建了两个系列:餐厅和OpeningHours。我已使用以下代码将数据插入数据库: db.OpeningHours.insert({ day: "Sunday", from: "10.00am", to: "16.00pm" }); db.Restaurant.insert({ name: "Restaurant01", openingHoursId:

今天我开始与MongoDB合作。我创建了两个系列:餐厅和OpeningHours。我已使用以下代码将数据插入数据库:

   db.OpeningHours.insert({
        day: "Sunday",
        from: "10.00am",
        to: "16.00pm"
});

    db.Restaurant.insert({
         name: "Restaurant01",
         openingHoursId: 
           [
             {id: db.OpeningHours.find({day: "Sunday", from: "10.00am", to: "16.00pm"})[0]._id},
           ]
});
该餐厅包含一系列OpeningHours ID。我想用lookup编写一个查询,这样我就可以从餐厅获得所有数据以及相应营业时间的数据。这是到目前为止我的代码,如果我运行它,我会得到一个错误:命令失败

db.Restaurant.aggregate([
{
    $unwind: "$openingHoursId",
    $lookup:
        {
            from: "OpeningHours",
            localField: "id",
            foreignField: "_id",
            as: "RestaurantHours"
        }
}
])
我想要的预期结果如下:

{
   "_id": ObjectId("5c43b6c8d0fa3ff24621f749"),
   "name": "Restaurant01",
   "openingHoursId": 
          [
              {
                 "id": ObjectId("5c43b6c8d0fa3ff2462fg93e")
              }
          ],
   "RestaurantHours" :
          [ 
              {
                  "_id": ObjectId("5c43b6c8d0fa3ff2462fg93e"),
                  "day": "Sunday",
                  "from": "10.00am",
                  "to": "16.00pm"  
              }
          ]
}

您的
localField
应该是
openingHoursId.id
而不仅仅是
id

db.Restaurant.aggregate([
  { "$unwind": "$openingHoursId" },
  { "$lookup": {
    "from": "OpeningHours",
    "localField": "openingHoursId.id",
    "foreignField": "_id",
    "as": "openingHoursId.RestaurantHours"
  }},
  { "$unwind": "$openingHoursId.RestaurantHours" },
  { "$group": { 
    "_id": "$_id",
    "name": { "$first": "name" },
    "openingHoursId": { "$push": "openingHoursId" }
  }}
])

这个:谢谢,但是如果我向openingHoursId数组添加了一个或多个ID,那么结果就不会被推到同一个数组中。例如,如果我在数组中再添加两个ID(total=3),那么结果将打印同一个餐厅三次,但每次迭代都会更改数组元素