db.testA.aggregate([
{
"$lookup": {
"from": "testB",
"localField": "_id",
"foreignField": "aId",
"as": "join"
}
},
{
$project: {
count: {
$size: "$join"
}
}
},
{
$set: {
favorite: {
$switch: {
branches: [
{
case: {
$gte: [
"$count",
1
]
},
then: true
},
{
case: {
$gte: [
"$count",
0
]
},
then: false
},
],
default: false
}
}
}
}
])
我有這個聚合功能。我想保留這些欄位,但我不確定它們為什么消失了。
db={
"testA": [
{
"_id": ObjectId("60508eeb52a2ab598a013bb9"),
"message": "hello",
"field1": false,
"field2": 1,
"field3": "something"
},
{
"_id": ObjectId("60508f2852a2ab598a013bba"),
"message": "hello",
"field1": false,
"field2": 1,
"field3": "something"
},
{
"_id": ObjectId("60508f2852a2ab665a013bba"),
"message": "hello",
"field1": false,
"field2": 1,
"field3": "something"
}
],
"testB": [
{
"_id": ObjectId("60508f4152a2ab598a013bbb"),
"aId": ObjectId("60508f2852a2ab598a013bba")
},
{
"_id": ObjectId("60508f4552a2ab598a013bbc"),
"aId": ObjectId("60508f2852a2ab598a013bba")
},
{
"_id": ObjectId("605090a452a2ab598a013bbd"),
"aId": ObjectId("60508eeb52a2ab598a013bb9")
}
]
}
這是我的資料庫。本質上,我希望通過管道傳遞訊息 field1、field2、field3,以便最后得到 6 個欄位而不是 2 個欄位。
這是我得到的結果:
[
{
"_id": ObjectId("60508eeb52a2ab598a013bb9"),
"count": 1,
"favorite": true
},
{
"_id": ObjectId("60508f2852a2ab598a013bba"),
"count": 2,
"favorite": true
},
{
"_id": ObjectId("60508f2852a2ab665a013bba"),
"count": 0,
"favorite": false
}
]
https://mongoplayground.net/p/KjquoKCUw4P
如果不清楚,這就是我想要的:
[
{
"_id": ObjectId("60508eeb52a2ab598a013bb9"),
"count": 1,
"favorite": true,
"message": "hello",
"field1": false,
"field2": 1,
"field3": "something"
},
{
"_id": ObjectId("60508f2852a2ab598a013bba"),
"count": 2,
"favorite": true,
"message": "hello",
"field1": false,
"field2": 1,
"field3": "something"
},
{
"_id": ObjectId("60508f2852a2ab665a013bba"),
"count": 0,
"favorite": false,
"message": "hello",
"field1": false,
"field2": 1,
"field3": "something"
}
]
資料幾乎相同,但假設它們都不同。
uj5u.com熱心網友回復:
使用$addFields而不是 $project:
{
$addFields: {
count: {
$size: "$join"
}
}
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/487248.html
上一篇:Mongodb影像陣列更改模式
下一篇:型別缺少“Schema<any,Model<any,any,any,any>,{},{}>'型別的以下屬性:add、childSchemas、clearIndexes
