簡體   English   中英

如何在 Pymongo 中對字典數組進行排序?

[英]How do I sort array of dictionaries in Pymongo?

我在users數據庫中有這個示例 MongoDB 條目:

{
     _id: xxx,
     name: "name",
     files:[{
          fileName: "test",
          size: 50
          },
          {
          fileName: "test2",
          size: 44
          },
          {
          fileName: "test3",
          size: 120
          }
     ]
}

我正在嘗試使用 Pymongo 按大小對文件進行排序。

如何使用aggregate命令對字典進行排序? 換句話說,我希望它到 output 這個,在這種情況下,按降序排列:

[
     {
          fileName: "test3",
          size: 120
     },
     {
          fileName: "test",
          size: 50
     },
     {
          fileName: "test2",
          size: 44
     }
]

我找不到僅獲取數組本身並將其轉換為 Python 列表的方法,因此我可以在使用 Pymongo 庫之外對其進行排序,這就是為什么我正在研究使用 Pymongo 庫來完成這項工作.

這是我提出的解決方案。 它完全符合我的需要。

db.users.aggregate([
  {
    "$unwind": "$files"
  },
  {
    "$sort": {
      "files.size": 1
    }
  },
  {
    "$replaceRoot": {
      newRoot: "$files"
    }
  }
])

它正在運行: https://mongoplayground.net/p/4v0m02PsbfQ

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM