如何获取 parent 文档的所有字段?

How to fetch all fields of parent document?

我尝试使用 $group 获取 parent 文档的所有字段,但它只发送特定字段。

另一个问题。如何使用“$project”获取 parent 文档的所有字段?

Collection“机会
文档 #1

{
    "_id" : ObjectId("5c42b737cd94891a57fbf33e"),
    "accountId" : [
         ObjectId("5c29f198b248d845931a1830"),
         ObjectId("5c29f198b248d845931a1831"),
    ]
    "name" : "OppNewTest01",
    "value" : 10000,
    "status" : "open",
}

Collection "账户"
文档 #1

{        
     "_id" : ObjectId("5c29f198b248d845931a1830"),
     "name" : "MyTestAcc",
     "phone" : "7845124578",
}

我的MongoDB查询,

con.collection('opportunity').aggregate([
    {
        $unwind: "account"
    },
    {
        $lookup: {
            from: 'account',
            localField: 'accountId',
            foreignField: '_id',
            as: 'accounts',
        },
    },
    {
        $unwind: '$accounts'
    },
    {
        $group: {
            "_id": "$_id",
            "account": { "$push": "$accounts" }
        }
    },
    ]).toArray((err, res) => {
        cbFun(res, err);
});

上述查询的输出

{
    "_id" : "5c42b737cd94891a57fbf33e",
    "account": [
         {        
            "_id" : ObjectId("5c29f198b248d845931a1830"),
            "name" : "MyTestAcc",
            "phone" : "7845124578",
         },
         {        
            "_id" : ObjectId("5c29f198b248d845931a1831"),
            "name" : "MyTestAcc1",
            "phone" : "7845124579",
         },
    ]
}

我想低于输出,

{
    "_id" : "5c42b737cd94891a57fbf33e",
    "accountId" : [
           ObjectId("5c29f198b248d845931a1830"),
           ObjectId("5c29f198b248d845931a1831"),
    ],
    "name" : "OppNewTest01",
    "value" : 10000,
    "status" : "open",
    "account": [
         {        
            "_id" : ObjectId("5c29f198b248d845931a1830"),
            "name" : "MyTestAcc",
            "phone" : "7845124578",
         },
         {        
            "_id" : ObjectId("5c29f198b248d845931a1831"),
            "name" : "MyTestAcc1",
            "phone" : "7845124579",
         },
    ]
}

我尝试获取以上输出但没有获取。

当您 $group 时,您只是在丢失该数据,请在该阶段保存这些字段以保留它们。

    {
        $group: {
            "_id": "$_id",
            "account": { "$push": "$accounts" },
            value: {$first: "$value"},
            status: {$first: "$status},
            name: {$first: "$name"},
            accountId: {$push: "$accountId},
        }
    }

EDIT:
[
    {
        $group: {
            "_id": "$_id",
            "accounts": { "$push": "$accounts" },
            "doc": {$first: "$$ROOT"},
        }
    },
    {
        $addFields: {
              "doc.accounts" :"$accounts"
        }
     }
]