一个字段的MongoDb聚合框架值,其中最大另一个字段

西亚马斯特

我有一个具有如下记录的集合:

"_id" : ObjectId("550424ef2f44472856286d56"), "accountId" : "123", 
"contactOperations" :
    [
        { "contactId" : "1", "operation" : 1, "date" : 500 },
        { "contactId" : "1", "operation" : 2, "date" : 501 },
        { "contactId" : "2", "operation" : 1, "date" : 502 } 
    ] 
}

我想知道已应用于特定联系人的最新操作号码。

我正在使用聚合框架首先展开contactOperations,然后按accountId和contactOperations.contactId和max contactOperations.date进行分组。

aggregate([{$unwind : "$contactOperations"}, {$group : {"_id":{"accountId":"$accountId", "contactId":"$contactOperations.contactId"}, "date":{$max:"$contactOperations.date"} }}])

我得到的结果是:

"_id" : { "accountId" : "123", "contactId" : "2" }, "time" : 502 }
"_id" : { "accountId" : "123", "contactId" : "1" }, "time" : 501 }

到目前为止,这似乎是正确的,但我还需要使用$ max日期记录的contactOperations.operation字段。我该如何选择呢?

因德拉耶(Indrajeet)

您必须对展开值进行排序,然后应用$ last运算符来获取最大日期的操作。希望这个查询能解决您的问题。

aggregate([
  {
    $unwind: "$contactOperations"
  },
  {
    $sort: {
      "date": 1
    }
  },
  {
    $group: {
      "_id": {
        "accountId": "$accountId",
        "contactId": "$contactOperations.contactId"
      },
      "date": {
        $max: "$contactOperations.date"
      },
      "operationId": {
        $last: "$contactOperations.operation"
      }
    }
  }
])

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL-如何基于另一个字段聚合一个字段

来自分类Dev

如何构建其中一个字段引用另一个字段的结构

来自分类Dev

日期字段的最大值到Postgresql中的另一个字段

来自分类Dev

日期字段的最大值到Postgresql中的另一个字段

来自分类Dev

一个字段基于另一个字段的求和

来自分类Dev

Mongodb-查找另一个字段中存在的字段值

来自分类Dev

MongoDB使用另一个字段的值添加新字段

来自分类Dev

Mongodb字段值作为另一个字段

来自分类Dev

Mongodb在一个字段上查询取决于另一个字段

来自分类Dev

选择一个字段的值,其中另一个字段等于rails中的值

来自分类Dev

在另一个字段上键入时更新一个字段的值

来自分类Dev

根据另一个字段更新一个字段的值

来自分类Dev

将一个字段与另一个字段的所有值分组

来自分类Dev

当另一个字段值更改时更新一个字段值

来自分类Dev

检查一个字段的值是否在另一个字段中

来自分类Dev

如何在Mongodb聚合中将一个字段与另一个字段进行比较?

来自分类Dev

按另一个字段的最大值进行汇总

来自分类Dev

选择当一个字段的最大值对应于另一个字段的值时

来自分类Dev

每当另一个字段值为零时,返回一个字段的最大值

来自分类Dev

获取一个字段的最大值,但仅针对另一个字段中具有相同值的其他文档

来自分类Dev

mongodb / meteor:如何获取与另一个字段的$ max值相对应的一个字段的值?

来自分类Dev

MongoDB高级查询-使用另一个字段的值

来自分类Dev

mongoDB $ set问题,使用文档的键值/另一个字段值

来自分类Dev

Splunk argmax:获取与另一个字段的最大值对应的字段值

来自分类Dev

如何使用另一个字段的值更新MongoDB字段

来自分类Dev

仅在mongodb中的字段小于另一个字段时更新

来自分类Dev

按字段过滤,然后选择另一个字段mongodb

来自分类Dev

Spring Boot - Mongodb - 基于另一个字段的自动递增字段

来自分类Dev

检索由聚合函数选择其行的另一个字段

Related 相关文章

  1. 1

    SQL-如何基于另一个字段聚合一个字段

  2. 2

    如何构建其中一个字段引用另一个字段的结构

  3. 3

    日期字段的最大值到Postgresql中的另一个字段

  4. 4

    日期字段的最大值到Postgresql中的另一个字段

  5. 5

    一个字段基于另一个字段的求和

  6. 6

    Mongodb-查找另一个字段中存在的字段值

  7. 7

    MongoDB使用另一个字段的值添加新字段

  8. 8

    Mongodb字段值作为另一个字段

  9. 9

    Mongodb在一个字段上查询取决于另一个字段

  10. 10

    选择一个字段的值,其中另一个字段等于rails中的值

  11. 11

    在另一个字段上键入时更新一个字段的值

  12. 12

    根据另一个字段更新一个字段的值

  13. 13

    将一个字段与另一个字段的所有值分组

  14. 14

    当另一个字段值更改时更新一个字段值

  15. 15

    检查一个字段的值是否在另一个字段中

  16. 16

    如何在Mongodb聚合中将一个字段与另一个字段进行比较?

  17. 17

    按另一个字段的最大值进行汇总

  18. 18

    选择当一个字段的最大值对应于另一个字段的值时

  19. 19

    每当另一个字段值为零时,返回一个字段的最大值

  20. 20

    获取一个字段的最大值,但仅针对另一个字段中具有相同值的其他文档

  21. 21

    mongodb / meteor:如何获取与另一个字段的$ max值相对应的一个字段的值?

  22. 22

    MongoDB高级查询-使用另一个字段的值

  23. 23

    mongoDB $ set问题,使用文档的键值/另一个字段值

  24. 24

    Splunk argmax:获取与另一个字段的最大值对应的字段值

  25. 25

    如何使用另一个字段的值更新MongoDB字段

  26. 26

    仅在mongodb中的字段小于另一个字段时更新

  27. 27

    按字段过滤,然后选择另一个字段mongodb

  28. 28

    Spring Boot - Mongodb - 基于另一个字段的自动递增字段

  29. 29

    检索由聚合函数选择其行的另一个字段

热门标签

归档