Mongodb $lookup按id匹配的对象数组
所以我有两个收藏,Mongodb $lookup按id匹配的对象数组,mongodb,mongodb-query,Mongodb,Mongodb Query,所以我有两个收藏,stock和store 我正在尝试按id查询商店 我的股票看起来像这样 { _id: ObjectId('5ee93b1e9f96dd1257885748') productId: 100, inStore: [ { _id: ObjectId('5ee7ad659f96dd1257885742'), store: ObjectId('5ee906e59f96dd1257885745'), quantity: 10
stock
和store
我正在尝试按id查询商店
我的股票看起来像这样
{
_id: ObjectId('5ee93b1e9f96dd1257885748')
productId: 100,
inStore: [
{
_id: ObjectId('5ee7ad659f96dd1257885742'),
store: ObjectId('5ee906e59f96dd1257885745'),
quantity: 10
},
{
_id: ObjectId('5ee9085f9f96dd1257885746'),
store: ObjectId('5ee904549f96dd1257885744'),
quantity: 50
}
]
}
store
是存储的引用对象
store: { type: Types.ObjectId, ref: 'Store' },
通过包含inStore.store.\u id的所有库存文档进行查询的正确方法是什么
我目前正在尝试以下方法:
但我没有得到任何结果?但是当我删除匹配条件时,我注意到存储是一个空数组。在这种情况下,如何正确使用查找
提前谢谢
{
_id: ObjectId('5ee904549f96dd1257885744')
name: 'Manchester Store'
}
const inventories = await InventoryModel()
.aggregate([
{ $unwind: "$inStore" },
{ $lookup: {
from: "Store",
localField: "inStore.store",
foreignField: "_id",
as: "inStore.store"
}},
{$match: {
"inStore.store._id": '5ee906e59f96dd1257885745'
}}
])
'inStore._id' => ObjectId('...')