我有两个集合,一个有_id和UserId,另一个有UserId(相同的唯一标识符)和“其他数据”。
我想根据前一个集合中的_ids列表过滤后一个集合。
有人可以为此方案提供示例查询吗?
答案 0 :(得分:0)
加入'的唯一方法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"}