今天,我开始使用MongoDB。我创建了两个集合:Restaurant和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。我想用查询写一个查询,以便从餐厅获得所有数据以及相应营业时间的数据。到目前为止,这是我的代码,如果我运行它,则会出现错误:命令失败...
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"
}
]
}
答案 0 :(得分:1)
您的localField
应该不仅是openingHoursId.id
的{{1}}
id