[英]Mongodb sorting issue
我的mongodb集合:
[{
"_id" : ObjectId("5dd6598d55396f36052e347d"),
"isActive" : true,
"myarray" : [
{
"my_id" : "5d967d08821b4031a197b002",
"name" : "jack"
},
{
"my_id" : "5d967d2c821b4031a197b003",
"name" : "manison"
}
]
},
{
"_id" : ObjectId("5dd6598d55396f36052e347d"),
"isActive" : true,
"myarray" : [
{
"my_id" : "5d967d08821b4031a197b002",
"name" : "penelope"
},
{
"my_id" : "5d967d2c821b4031a197b003",
"name" : "cruz"
}
]
}]
在這里,我試圖根據名稱進行排序。 不希望在數組內排序,但希望在數組外排序。
期待的結果就像
[{
"_id" : ObjectId("5dd6598d55396f36052e347d"),
"isActive" : true,
"myarray" : [
{
"my_id" : "5d967d08821b4031a197b002",
"name" : "penelope"
},
{
"my_id" : "5d967d2c821b4031a197b003",
"name" : "cruz"
}
]
},{
"_id" : ObjectId("5dd6598d55396f36052e347d"),
"isActive" : true,
"myarray" : [
{
"my_id" : "5d967d08821b4031a197b002",
"name" : "jack"
},
{
"my_id" : "5d967d2c821b4031a197b003",
"name" : "manison"
}
]
}]
"name" : "cruz" 首先出現,因為按字母順序排列的 C 比 J AND M 快(在第二個 json 中)
並且 Prenelop 和 cruz 沒有切換只是按照名稱順序切換的主文檔 json
我正在使用的查詢
db.traffic.aggregate([
{$unwind: "$customFieldArray"},
{$sort: {"customFieldArray.field_value":1}},
{$group: {_id:"$_id", customFieldArray: {$push:"$customFieldArray"}}}
]);
但它在內部分類就像將克魯茲帶到佩內洛普,反之亦然。
並且主要 json 保持穩定。
請看一看
您可以使用sort
游標進行簡單的find
查詢
db.traffic.find({}).sort({ "myarray.name": -1 })
從docs
對於數組,小於比較或升序比較數組的最小元素,大於比較或降序比較數組的最大元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.