MongoDB罗盘-从文档中的3个字段及其值中获取最大值的字段名称(键)

Zookastos

我有这个样本mongodb文件-

{
    _id: 5db85ee97d9fb13ead4fc54c
    applId: 5d48f34f7d9fb10ce171f905
    fileId: "dd386cf7-4139-45c2-9853-cbb126621b51"
    job: Object
    country: "US"
    fullName: "abcd xyz"
    htmlWordCount: 2766
    textWordCount: 1867
    rchilliTextWordCount: 2840
    deleted: 0
    dateEntered: 2019-10-29 15:46:49.237
    dateModified: 2019-10-29 15:46:49.237
}

我想在罗盘中建立查询,以便在输出中包含以下字段-

{
    _id: 5db85ee97d9fb13ead4fc54c
    country: "US"
    fullName: "abcd xyz"
    htmlWordCount: 2766
    textWordCount: 1867
    rchilliTextWordCount: 2840
    winner: "rchilliTextWordCount"
}

请注意,它有一个名为“ winner”的新字段,该字段总是返回最大字数的列(3"htmlWordCount", "textWordCount", "rchilliTextWordCount"列之内)。此新列"winner"将在运行时根据查询生成。同样,此查询在上过滤country = "US"

如何在MongoDB Compass中执行此操作,或者聚合管道应该是什么样?

瓦利洪

您可以使用$ switch$ cond

db.collection.aggregate([
  {
    $match: {
      country: "US"
    }
  },
  {
    $project: {
      country: 1,
      fullName: 1,
      htmlWordCount: 1,
      textWordCount: 1,
      rchilliTextWordCount: 1,
      winner: {
        $switch: {
          branches: [
            {
              case: {
                $and: [
                  {
                    $gt: [
                      "$htmlWordCount",
                      "$textWordCount"
                    ]
                  },
                  {
                    $gt: [
                      "$htmlWordCount",
                      "$rchilliTextWordCount"
                    ]
                  }
                ]
              },
              then: "htmlWordCount"
            },
            {
              case: {
                $and: [
                  {
                    $gt: [
                      "$textWordCount",
                      "$htmlWordCount"
                    ]
                  },
                  {
                    $gt: [
                      "$textWordCount",
                      "$rchilliTextWordCount"
                    ]
                  }
                ]
              },
              then: "textWordCount"
            },
            {
              case: {
                $and: [
                  {
                    $gt: [
                      "$rchilliTextWordCount",
                      "$htmlWordCount"
                    ]
                  },
                  {
                    $gt: [
                      "$rchilliTextWordCount",
                      "$textWordCount"
                    ]
                  }
                ]
              },
              then: "rchilliTextWordCount"
            }
          ],
          default: "No winners"
        }
      }
    }
  }
])

蒙哥运动场

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

morphia将字段名称“ ClassName”插入到mongodb中

来自分类Dev

插入数据时如何在Spring-mongodb中重命名字段名称?

来自分类Dev

仅查询Mongodb中的字段名称

来自分类Dev

获取mongodb集合中的所有字段名称?

来自分类Dev

在NodeJS中,如何从mongodb输出具有不同字段名称的结果?

来自分类Dev

MongoDB返回没有字段名的值

来自分类Dev

在MongoDB中更新多个字段的值

来自分类Dev

如何在MongoDB中为其他字段名称注册ScalarDiscriminatorConvention?

来自分类Dev

如何在MongoDB中获取字段的最大值

来自分类Dev

MongoDb查询以获取数组中字段的最大值

来自分类Dev

MATLAB中的罗盘功能

来自分类Dev

MongoDB查询以在没有字段名称的嵌套数组中搜索文本

来自分类Dev

获取具有MongoDB中字段最大值的文档

来自分类Dev

使用mongodb中的聚合获取包含多个字段的最大值的对象

来自分类Dev

MongoDB罗盘:如何选择字段的不同值

来自分类Dev

MongoDB:使用字段值作为字段名称

来自分类Dev

是否可以通过MongoDB中的值查询字段名称?

来自分类Dev

如何在MongoDB中获取和使用字段名称列表?

来自分类Dev

MongoDB聚合从值减少mergeObjects字段名称

来自分类Dev

如何在MongoDB中创建一个自定义对象作为字段名称为键的输出?

来自分类Dev

仅查询Mongodb中的字段名称

来自分类Dev

Mongodb:更新变量字段名称

来自分类Dev

MongoDB字段名称未知时如何从子文档获取值

来自分类Dev

获取mongodb集合中的所有字段名称?

来自分类Dev

我如何查询mongodb / pymongo中的嵌入对象字段名称?

来自分类Dev

MongoDB:如何获取数组中特定子字段及其后续字段的值?

来自分类Dev

MongoDB $ unwind字段名称冲突

来自分类Dev

如何在MongoDB中获取字段的最大值

来自分类Dev

通过MongoDB文档中的对象字段的键或默认值获取值

Related 相关文章

  1. 1

    morphia将字段名称“ ClassName”插入到mongodb中

  2. 2

    插入数据时如何在Spring-mongodb中重命名字段名称?

  3. 3

    仅查询Mongodb中的字段名称

  4. 4

    获取mongodb集合中的所有字段名称?

  5. 5

    在NodeJS中,如何从mongodb输出具有不同字段名称的结果?

  6. 6

    MongoDB返回没有字段名的值

  7. 7

    在MongoDB中更新多个字段的值

  8. 8

    如何在MongoDB中为其他字段名称注册ScalarDiscriminatorConvention?

  9. 9

    如何在MongoDB中获取字段的最大值

  10. 10

    MongoDb查询以获取数组中字段的最大值

  11. 11

    MATLAB中的罗盘功能

  12. 12

    MongoDB查询以在没有字段名称的嵌套数组中搜索文本

  13. 13

    获取具有MongoDB中字段最大值的文档

  14. 14

    使用mongodb中的聚合获取包含多个字段的最大值的对象

  15. 15

    MongoDB罗盘:如何选择字段的不同值

  16. 16

    MongoDB:使用字段值作为字段名称

  17. 17

    是否可以通过MongoDB中的值查询字段名称?

  18. 18

    如何在MongoDB中获取和使用字段名称列表?

  19. 19

    MongoDB聚合从值减少mergeObjects字段名称

  20. 20

    如何在MongoDB中创建一个自定义对象作为字段名称为键的输出?

  21. 21

    仅查询Mongodb中的字段名称

  22. 22

    Mongodb:更新变量字段名称

  23. 23

    MongoDB字段名称未知时如何从子文档获取值

  24. 24

    获取mongodb集合中的所有字段名称?

  25. 25

    我如何查询mongodb / pymongo中的嵌入对象字段名称?

  26. 26

    MongoDB:如何获取数组中特定子字段及其后续字段的值?

  27. 27

    MongoDB $ unwind字段名称冲突

  28. 28

    如何在MongoDB中获取字段的最大值

  29. 29

    通过MongoDB文档中的对象字段的键或默认值获取值

热门标签

归档