简体   繁体   English

Pymongo 聚合()对数组字段进行排序

[英]Pymongo aggregate() sort an array field

I am doing an aggregate and on some stage i have following results:我正在做一个汇总,在某个阶段我有以下结果:

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

I want to get the array_field sorted on next stage:我想在下一阶段对 array_field 进行排序:

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

What is the possibilities?有哪些可能性? The $sort didnt helped me. $sort 没有帮助我。

You need to $unwind the array_field and then again $group to rollback您需要$unwind array_field然后再次$group回滚

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM