代码之家  ›  专栏  ›  技术社区  ›  pr0p

仅添加MongoDB中其他集合中的字段

  •  2
  • pr0p  · 技术社区  · 7 年前

    {
        a : Array,
        b : ObjectID
    }
    

    和B,具有以下模式

    {
        x : 'string',
        y : // some object schema
        ...
        b : ObjectID
    }
    

    我希望聚合后的值具有以下架构:

    {
        x : 'string',
        newField : a // array from collection A
        y : // some object schema
        ...
        b : ObjectID
    }
    

    1 回复  |  直到 7 年前
        1
  •  2
  •   pr0p    7 年前

    这可以作为一个操作管道来完成,如下所示:

    {
        $lookup: {
            from: "A",
            localField: "b",
            foreignField: "b",
            as: "someField"
        }
    },
    {
        $addFields: {
          newField  : "$someField.a"
        }
    },
    {
        $unwind: "$newField"
    },
    {
        $project: {
            someField: 0
        }
    }