我有一个$lookup
结果保存为username
,我想将其添加到名为approvation
的预计结果中。 我想我可以这样添加它:'approval.username':'$username'
,但是没有用。
如何将username
结果添加到预测结果中? (同时username
返回其他数据的数组,如何仅指定firstname
和lastname
键。)
$project: {
address: 1,
approval: {
$arrayElemAt: ["$approval", 0],
},
}
注意,我希望维护在approvation
中投影的所有结果。
此时输出为:
{
address: { 'addresshere' },
approval: { recordToApprove : "1010", createDT : "2020-07 18T14:29:54+01:00"}
}
我要找的输出是:
{
address: { 'addresshere' },
approval: { recordToApprove : "1010", createDT : "2020-07 18T14:29:54+01:00", username: {firstname: 'First', lastname: 'Last' }
}
您可以尝试使用$MergeObjects
运算符:
db.collection.aggregate([
{
$project: {
address: 1,
user_details: {
$mergeObjects: [
{
$arrayElemAt: ["$approval", 0]
},
{
username: { $arrayElemAt: ["$username", 0] }
}
]
}
}
}
])
MongoPlayground备选$let