1
我有一個貓鼬收集,看起來像這樣貓鼬聚合得到所有匹配的一組匹配的另一標準
[{
_type:'video',
_id:'video1',
status:'active'
},
{
_type:'video',
_id:'video2',
status:'active'
}]
而另一個集合這樣
[{
_type:'product',
_id:'product1',
items:['video1']
}]
哪有文件中引用的標準文件我使用貓鼬聚合來查找所有帶有_type爲'video'的文件,這些文件在_type爲'product'的任何文檔的字段'items'中引用。
我要的結果
[{
_type:'video',
_id:'video1',
status:'active'
}]
這是我迄今爲止,但「connectedVideos」始終是一個空數組
[{
"$match":{
"_type":"product"
}
},
{
"$project": {
"items":true,
"_id":true,
"title":true
}
},
{
"$unwind":"$items"
},
{
"$lookup": {
"from": "videos",
"localField": "items",
"foreignField": "_id",
"as": "connectedVideos"
}
}
]
[$在數組中的ObjectId的lookup的可能的重複](http://stackoverflow.com/questions/34967482/lookup-on-objectids-in-an-array) – Veeram
我不認爲是這種情況,你已經鏈接的問題演示瞭如何做與我正在尋找的相反。 我需要找到包含在「產品」文檔集的「商品」字段中的所有'視頻'文檔, 您提到的問題是如果我想查找包含所選商品的所有「商品」文檔'視頻'文件? –
我的意思是說你只需要'$ unwind'來結束視頻陣列。這不是你所追求的嗎? '[{ 「$匹配」:{ 「_type」: 「產品」 } },{ 「$開卷」: 「$項目」 },{ $查找:{ 從 「視頻」, localField:「items」, foreignField:「_id」, as:「videos」 } }]'這會爲您提供每個產品的所有視頻。 – Veeram