我正在嘗試使用 mongoose 進行聚合,但我遇到了問題,我得到了這個結果:
[
{
_id: new ObjectId("630bb658370cc689973c5bb4"),
isRead: true,
user: new ObjectId("630273bbe0f3f82d85b149bd"),
globalRef: new ObjectId("630bb649370cc689973c5b62"),
},
{
_id: new ObjectId("630bb649370cc689973c5b62"),
isRead: false,
},
{
_id: new ObjectId("6306bcf16fa60080148fefb6"),
isRead: false,
},
{
_id: new ObjectId("630273bbe0f3f82d85b149bd"),
isRead: false,
user: new ObjectId("630273bbe0f3f82d85b149bd")
},
{
_id: new ObjectId("6306bcf16fa60080148fefb7"),
isRead: true,
user: new ObjectId("630273bbe0f3f82d85b149bd")
}
]
我們可以看到第一個元素對globalRef第二個元素有一個參考 ( ),
如果存在另一個元素作為參考,我想洗掉另一個元素,這可能與 $match 一起使用嗎?$組?$專案?$過濾器?
期望的結果:
[
{
_id: new ObjectId("630bb658370cc689973c5bb4"),
isRead: true,
user: new ObjectId("630273bbe0f3f82d85b149bd"),
globalRef: new ObjectId("630bb649370cc689973c5b62"),
},
{
_id: new ObjectId("6306bcf16fa60080148fefb6"),
isRead: false,
},
{
_id: new ObjectId("630273bbe0f3f82d85b149bd"),
isRead: false,
user: new ObjectId("630273bbe0f3f82d85b149bd")
},
{
_id: new ObjectId("6306bcf16fa60080148fefb7"),
isRead: true,
user: new ObjectId("630273bbe0f3f82d85b149bd")
}
]
謝謝你的幫助
uj5u.com熱心網友回復:
詢問
_id您可以使用globalRef(使 globalRef 上的索引更快)進行自我查找- 加入后,如果結果為空,則保留檔案(未找到匹配項)
- 取消設定以洗掉結果欄位
玩蒙哥
coll.aggregate(
[{"$lookup":
{"from": "coll",
"localField": "_id",
"foreignField": "globalRef",
"as": "results"}},
{"$match": {"$expr": {"$eq": ["$results", []]}}},
{"$unset": ["results"]}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/504016.html
標籤:数据库 mongodb 猫鼬 总计的 nosql-聚合
上一篇:Mongodb聚合查找連接兩個物件欄位的集合陣列匹配物件索引欄位的總和
下一篇:我可以為前置中間件創建一個例外嗎
