在帶有節點 js 的 js 中,我想對模型的結果進行排序,而不考慮具有 nil 值的檔案,例如 Products = [ {_id:ObjectID(), priority:3},
{_id:ObjectID(), 優先級:1},
{_id:ObjectID(), 優先級:2},
{_id:ObjectID()} ]
所以這個 mongo 模式所以我需要一個查詢來查找排序元素 witjout 考慮 nil 但具有 nil 值的檔案必須以升序或降序排列在結果的末尾
uj5u.com熱心網友回復:
因此,這里有一個示例,假設您的資料位于名為“產品”的集合中。這里我們假設空值應該在結果的末尾進行排序。此外,假設您希望以升序方式對優先級進行排序。
我使用任意大數 - 999999 - 來表示空值并按該值排序。
聚合
db.products.aggregate([
{
$addFields:
{
"sortField":
{
$ifNull: [ "$priority", 9999999 ]
}
}
},
{
$sort: { "sortField": 1 }
},
{
$project: { "sortField": 0 }
}
])
結果
[
{ _id: ObjectId("61b0e373c6c466d7d1ea9b5b"), priority: 1 },
{ _id: ObjectId("61b0e373c6c466d7d1ea9b5c"), priority: 2 },
{ _id: ObjectId("61b0e373c6c466d7d1ea9b5a"), priority: 3 },
{ _id: ObjectId("61b0e373c6c466d7d1ea9b5d") }
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/377417.html
