0
我有兩個集合,一個具有_id和UserId,另一個具有UserId(相同的唯一標識符)和「其他數據」。MongoDB查詢,使用光標過濾
我想根據前集合中的_id列表過濾後一個集合。
有人可以提供這種情況下的示例查詢嗎?
我有兩個集合,一個具有_id和UserId,另一個具有UserId(相同的唯一標識符)和「其他數據」。MongoDB查詢,使用光標過濾
我想根據前集合中的_id列表過濾後一個集合。
有人可以提供這種情況下的示例查詢嗎?
在MongoDB中「加入」集合的唯一方法是集合階段$lookup(在版本3.2中可用)。
firstCollection.aggregate([
{ $match: { _id: {$in: [1,2,3] }}}, // filter by _ids
{
$lookup:
{
from: "secondCollection",
localField: "UserId",
foreignField: "UserId",
as: "data"
}
}
])
這會將「數據」字段添加到來自第一個集合的文檔中,該集合將包含來自第二個集合的所有相關文檔。如果關係不是1:1,則可以添加$unwind階段來平展結果:
{$unwind: "$data"}
如果我使用的是版本2.6.9,有什麼可以做的嗎? –
@AlexWu沒有在數據庫端。您只能執行兩個查詢 - 首先通過_ids獲取UsesrIds。第二,通過UserIds獲取數據 –