【问题标题】:Pymongo aggregate() sort an array fieldPymongo aggregate() 对数组字段进行排序
【发布时间】:2018-08-18 07:54:49
【问题描述】:

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

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

我想在下一阶段对 array_field 进行排序:

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

有什么可能性? $sort 对我没有帮助。

【问题讨论】:

    标签: python mongodb pymongo


    【解决方案1】:

    你需要$unwindarray_field然后再$group来回滚

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

    【讨论】:

      猜你喜欢
      • 2019-12-06
      • 2015-03-11
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多