代码之家  ›  专栏  ›  技术社区  ›  sanyassh Khushboo Tahir

Pymongo aggregate()对数组字段排序

  •  1
  • sanyassh Khushboo Tahir  · 技术社区  · 6 年前

    我正在做一个汇总,在某个阶段我有以下结果:

    [{ "_id" : 1, "array_field": [1, 2, 3]},
     { "_id" : 2, "array_field": [3, 2, 1]}]
    

    [{ "_id" : 1, "array_field": [1, 2, 3]},
     { "_id" : 2, "array_field": [1, 2, 3]}]
    

    有什么可能?那种钱对我没有帮助。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ashh    6 年前

    你需要 $unwind 这个 array_field 然后再 $group

    db.collection.aggregate([
      { "$unwind": "$array_field" },
      { "$sort": {
        "array_field": 1
      }},
      { "$group": {
        "_id": "$_id",
        "array_field": {
          "$push": "$array_field"
        }
      }}
    ])