Pra*_*l M 6 aggregate mongoose mongodb mongodb-query
我有两个收藏
带架构
{
    a : Array,
    b : ObjectID
}
和 B 具有以下架构
{
    x : 'string',
    y : // some object schema
    ...
    b : ObjectID
}
我想使用 mongo 聚合在集合 B 中添加一个新字段,以仅包含使用 b 搜索的集合 A 中的 a。
我希望聚合后的值具有以下架构:
{
    x : 'string',
    newField : a // array from collection A
    y : // some object schema
    ...
    b : ObjectID
}
只有 $lookup 不起作用,因为我不想要整个对象,并且合并将删除 _id 并合并我不想要的其他对象。
Pra*_*l M 14
解决后我自己回答这个问题。
这可以作为操作管道来完成,如下所示:
{
    $lookup: {
        from: "A",
        localField: "b",
        foreignField: "b",
        as: "someField"
    }
},
{
    $addFields: {
      newField  : "$someField.a"
    }
},
{
    $unwind: "$newField"
},
{
    $project: {
        someField: 0
    }
}
更有效的答案将被接受
| 归档时间: | 
 | 
| 查看次数: | 3671 次 | 
| 最近记录: |