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