MongoDB对孩子进行排序

约翰·B

我有以下文件:

    {'_id':'id1','parentId':"",'count':1}
    {'_id':'id2','parentId':"",'count':12}
    {'_id':'id3','parentId':"",'count':16}
    {'_id':'id4','parentId':"id2",'count':3}
    {'_id':'id5','parentId':"id2",'count':3}
    {'_id':'id6','parentId':"id1",'count':0
{'_id':'id7','parentId':"id1",'count':122}

具有“”字段的parentId表示父节点。如果存在parentId,则表示给定parentId的子节点。我需要一个将按“计数”(降序)排序的查询,但是我只希望它返回parentId的游标。但是,如果子项计数最高,则代表总体最高值,应返回该子项的父项。

对以上数据运行查询的结果应按以下顺序为我提供文档:id1,id3,id2

我考虑过启动聚合管道。对于第一阶段,我可以进行计数。但是我不知道如何获取查询以返回孩子的parentId ...

霍夫·迈斯特

您可以通过以下聚合来做到这一点:

db.collection.aggregate(
  [
    {
      $project: {
      group_id : { $cond : { if: { $ne: [ "$parentId", "" ] }, then: "$parentId", else: "$_id" }},
      count :1
      }
    },
    {
      $group: {
      _id : "$group_id",
      total_count : { $sum: "$count" }
      }
    },
    {
      $sort: {
      total_count : -1
      }
    }
  ]
);

首先,我计划一个额外的字段“ group_id”,该字段由_id或parentId填充,具体取决于parentId的值。group_id字段用于分组和总计。最后一步是对total_count进行分组。

当您使用mongoDb 3.4时,您可以签出$ graphLookup,但是现在我留给您3.4之前的版本;-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按孩子的孩子对数组进行排序

来自分类Dev

用父母的孩子对PHP数组进行排序

来自分类Dev

Rails 范围用于对最近的孩子进行排序,包括那些没有孩子的孩子

来自分类Dev

通过reddit排序算法对mongodb进行排序

来自分类Dev

通过reddit排序算法对mongodb进行排序

来自分类Dev

JavaScript - 如何按孩子的键对 firebase 数据进行排序

来自分类Dev

MongoDB中如何对索引进行排序?

来自分类Dev

在MongoDB中,如何对$ or或$ in查询进行排序?

来自分类Dev

按字节大小对MongoDB文档进行排序

来自分类Dev

在MongoDB中对嵌套字段进行排序

来自分类Dev

在mongodb中按日期对值进行排序

来自分类Dev

MongoDb:对文本搜索结果进行排序

来自分类Dev

在mongodb php中对mapReduce结果进行排序

来自分类Dev

对内部文档mongodb进行排序的mapreduce

来自分类Dev

按字节大小对MongoDB文档进行排序

来自分类Dev

在MongoDB中进行GROUP BY之前进行排序

来自分类Dev

在MongoDB中进行GROUP BY之前进行排序

来自分类Dev

获取所有没有特定孩子的父母并对其进行排序

来自分类Dev

在Firebase中按孩子的孩子进行查询

来自分类Dev

在Firebase中按孩子的孩子进行查询

来自分类Dev

由孩子的孩子进行Swift Firebase查询

来自分类Dev

祖先:按孩子人数排序

来自分类Dev

MongoDb:如何对日期字段进行汇总,分组和排序?

来自分类Dev

MongoDB按字母顺序对输出进行排序(分组后)

来自分类Dev

MongoDB:如何在更新之前对查询进行排序

来自分类Dev

MongoDB:对数组元素进行匹配和排序?

来自分类Dev

在Mongodb中使用聚合对复杂条件进行排序

来自分类Dev

使用PHP对带有外来字符的MongoDb文档进行排序

来自分类Dev

如何使用mongodb对$ group聚合输出进行排序

Related 相关文章

  1. 1

    按孩子的孩子对数组进行排序

  2. 2

    用父母的孩子对PHP数组进行排序

  3. 3

    Rails 范围用于对最近的孩子进行排序,包括那些没有孩子的孩子

  4. 4

    通过reddit排序算法对mongodb进行排序

  5. 5

    通过reddit排序算法对mongodb进行排序

  6. 6

    JavaScript - 如何按孩子的键对 firebase 数据进行排序

  7. 7

    MongoDB中如何对索引进行排序?

  8. 8

    在MongoDB中,如何对$ or或$ in查询进行排序?

  9. 9

    按字节大小对MongoDB文档进行排序

  10. 10

    在MongoDB中对嵌套字段进行排序

  11. 11

    在mongodb中按日期对值进行排序

  12. 12

    MongoDb:对文本搜索结果进行排序

  13. 13

    在mongodb php中对mapReduce结果进行排序

  14. 14

    对内部文档mongodb进行排序的mapreduce

  15. 15

    按字节大小对MongoDB文档进行排序

  16. 16

    在MongoDB中进行GROUP BY之前进行排序

  17. 17

    在MongoDB中进行GROUP BY之前进行排序

  18. 18

    获取所有没有特定孩子的父母并对其进行排序

  19. 19

    在Firebase中按孩子的孩子进行查询

  20. 20

    在Firebase中按孩子的孩子进行查询

  21. 21

    由孩子的孩子进行Swift Firebase查询

  22. 22

    祖先:按孩子人数排序

  23. 23

    MongoDb:如何对日期字段进行汇总,分组和排序?

  24. 24

    MongoDB按字母顺序对输出进行排序(分组后)

  25. 25

    MongoDB:如何在更新之前对查询进行排序

  26. 26

    MongoDB:对数组元素进行匹配和排序?

  27. 27

    在Mongodb中使用聚合对复杂条件进行排序

  28. 28

    使用PHP对带有外来字符的MongoDb文档进行排序

  29. 29

    如何使用mongodb对$ group聚合输出进行排序

热门标签

归档