我的管道中有一個小組階段,例如:
$group: {
_id: null,
count: {$sum: 1},
results: {$push: '$$ROOT'}
}
有時$$ROOT為空并且沒有結果。在這些情況下,我在小組賽階段后得到一個空結果,這不是我想要的行為。我想獲得以下物件,而不是零計數和空結果。
[
{
count: 0,
results: []
}
]
我怎樣才能做到這一點?我試圖替換根(通過replaceRoot),但似乎當沒有任何東西時也沒有根。
uj5u.com熱心網友回復:
詢問
- 這樣做的正常方法我認為它在驅動程式上使用簡單的代碼
- 但是你也可以在資料庫上做,代碼比較復雜
- “empty_result”是一個包含這個的集合
[{"count": 0,"results": []}]
有資料的
例子 沒有資料的例子
docs.aggregate(
[{"$group":
{"_id": null, "count": {"$sum": 1},
"results": {"$push": "$$ROOT"}}},
{"$unionWith": {"coll": "empty_result"}},
{"$sort": {"count": -1}},
{"$limit": 1}])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/353817.html
標籤:节点.js MongoDB 猫鼬 mongodb4.0
上一篇:基于另一個集合的貓鼬過濾器集合
下一篇:貓鼬洗掉一個結果為0
