【问题标题】:Sort By length of array mongodb query按数组mongodb查询的长度排序
【发布时间】:2018-06-20 07:02:45
【问题描述】:

我有如下 MongoDB 文档: 是否有查询以 subscribedGroups 的长度对文档进行排序?可以升也可以降。

{ 
    "_id" : ObjectId("58c29d9ec79d585c0e16b110"), 
    "subscribedGroups" : [
      ObjectId("5b28a9190c8c0d0014b03a0c"), 
      ObjectId("5b2930650b813a0014a3294d"), 
      ObjectId("5b29f1b5243d470014d6d351")
    ]
}

【问题讨论】:

  • 你有一个到目前为止你尝试过的例子吗?

标签: node.js mongodb mongodb-query aggregation-framework


【解决方案1】:

您可以使用$size 找到subscribedGroups 的大小,然后使用数组的长度轻松找到$sort

db.collection.aggregate([
  {
    $addFields: {
      subscribedGroupsLength: {
        $size: "$subscribedGroups"
      }
    }
  },
  {
    $sort: {
      subscribedGroupsLength: -1
    }
  }
])

sample

【讨论】:

  • 这比使用旧的展开、分组、然后排序的想法要好得多!
猜你喜欢
  • 1970-01-01
  • 2013-01-12
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 2012-02-20
  • 2012-07-21
相关资源
最近更新 更多