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获取数据 –