我想回傳一個陣列,它是我的 mongo 模型/檔案中的一個屬性,我希望對該陣列進行排序。我的 MongoDB 檔案如下所示:
_id: ObjectID("6248e49c88ff07aedee8c000")
title: "School"
items: [
{
sort: 2,
name: "homework"
},
{
sort: 1,
name: "exam"
},
{
sort: 3,
name: "essay"
},
]
我試圖回來
items: [
{
sort: 1,
name: "exam"
},
{
sort: 2,
name: "homework"
},
{
sort: 3,
name: "essay"
}
]
我嘗試過聚合:
app.get("/api/v1/lists/:id", async (req,res) =>{
List.aggregate([{
"$match" :{"_id": req.params.id}
},{
"$unwind" : "$items"
} , {
"$sort" : {"sort": 1}
}
], (err, items)=>{
res.json(items)
})
}
uj5u.com熱心網友回復:
Mongo Playground 參考 由于 $unwind 將陣列作為物件回傳,因此我們使用 $group 將物件推回 items 陣列
db.collection.aggregate([
{
$unwind: "$items"
},
{
$sort: {
"items.sort": 1
}
},
{
$group: {
_id: "$_id",
items: {
$push: "$items"
}
}
},
])
輸出 -
[
{
"_id": 1.212112e 06,
"items": [
{
"name": "exam",
"sort": 1
},
{
"name": "homework",
"sort": 2
},
{
"name": "essay",
"sort": 3
}
]
}
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/456614.html
標籤:javascript mongodb 猫鼬
