我有两个收藏夹
具有架构的
{
a : Array,
b : ObjectID
}
和B具有以下架构
{
x : 'string',
y : // some object schema
...
b : ObjectID
}
我想使用mongo聚合在集合B中添加一个新字段,以仅包含使用b搜索的集合A中的一个。
我希望聚合后的值具有以下架构:
{
x : 'string',
newField : a // array from collection A
y : // some object schema
...
b : ObjectID
}
仅$ lookup不起作用,因为我不希望整个对象,并且合并也将删除_id并合并其他我不希望的对象。
答案 0 :(得分:2)
解决后,我自己回答。
这可以通过以下操作流程来完成:
{
$lookup: {
from: "A",
localField: "b",
foreignField: "b",
as: "someField"
}
},
{
$addFields: {
newField : "$someField.a"
}
},
{
$unwind: "$newField"
},
{
$project: {
someField: 0
}
}
更有效的答案将被接受