Mongo嵌入式文档字段查询

海姆斯

我有一个包含以下类似文件的现有收藏集

{
    "_id" : UUID("ef2f3778-c74a-4a40-9169-a7798bc6c776"),
    "feedId" : UUID("677d0a5a-0ceb-43d9-954d-bfefddc22ca2"),
    "events" : {
        "1500" : {
            "t" : ISODate("2020-08-20T02:25:00.000Z"),
            "a" : {
                "Manager" : "Joe",
                "Amount" : 20.3
            }
        },
        "1800" : {
            "t" : ISODate("2020-08-20T02:30:00.000Z"),
            "a" : {
                "Manager" : "Joe",
                "Amount" : 21.3
            }
        },
        "2100" : {
            "t" : ISODate("2020-08-20T02:35:00.000Z"),
            "a" : {
                "Manager" : "Joe",
                "Amount" : 22.3
            }
        },
        "2400" : {
            "t" : ISODate("2020-08-20T02:40:00.000Z"),
            "a" : {
                "Manager" : "Joe",
                "Amount" : 23.3
            }
        }
    }
}

我对查询返回按时间顺序排列的所有“金额”字段值(“ t”字段)感兴趣。现在,我认识到“事件”嵌入文档的结构不太可能正确构建。它应该是一个数组。但这恐怕是徒手的,即没有选择来更改文档。如何从集合中具有相同feedId的所有对象中返回类似于[20.3、21.3、22.3、23.3等]的查询?

编辑:我将添加事件对象/文档在每个集合对象上没有统一的名称。即在这里您看到1500、1800、2100等。但是下一个文档可能只有1500和3000。

引用另一个有相同问题但似乎遇到困难的帖子(似乎没有将文档架构更改为数组):

MongoDB查询嵌入式文档字段

海姆斯

@JF的回答使我很接近。这是对我有用的查询:

db.collection.aggregate(
    [
        { $match: { feedId: 2 } },
        { $project: { events: {$objectToArray: "$events"} } },
        {
            "$unwind": "$events"
        },
        {
            "$sort": {
              "events.v.t": 1
            }
        },
        { $group: {  "_id": null, Amounts: { $push: "$events.v.a.Amount" } } },
        {
          "$project": {
            "Amounts": 1,
            "_id": 0
        }
      }
    ]
)

它为我产生了预期的结果。我希望这是正确的。

结果:

/* 1 */
{
    "Amounts" : [ 
        20.3, 
        21.3, 
        22.3, 
        23.3, 
        24.3, 
        25.3, 
        26.3, 
        27.3, 
        28.3, 
        29.3, 
        30.3, 
        31.3, 
        32.3, 
        33.3, 
        34.3, 
        35.3, 
        36.3, 
...

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Data Mongo DB查询嵌入式文档的内部字段(DBRef)

来自分类Dev

查询具有大小的Mongo嵌入式文档

来自分类Dev

mongoengine查询嵌入式文档列表

来自分类Dev

mongoid-查询嵌入式文档

来自分类Dev

查询MongoDB中的嵌入式文档

来自分类Dev

春季查询嵌入式文档的数组

来自分类Dev

流星-查询嵌入式文档

来自分类Dev

是否可以查询嵌入式文档?

来自分类Dev

Spring Data Mongo-在嵌入式文档中应用唯一的组合字段

来自分类Dev

Mongo查询键值不是特定值的嵌入式文档

来自分类Dev

如何从mongodb中的嵌套嵌入式文档中查询和返回单个字段?

来自分类Dev

MongoDB聚合查询-重命名嵌入式文档中返回的字段

来自分类Dev

Mongodb node.js 查询嵌入式文档具有多个值的单个字段。

来自分类Dev

从嵌入式文档Mongo Java获得价值

来自分类Dev

从Mongo Engine中的ListfField删除嵌入式文档

来自分类Dev

Mongo + Ruby Rails:获取所有嵌入式文档

来自分类Dev

Mongo将嵌入式文档转换为数组

来自分类Dev

是否有任何查询通过检查mongoDb中嵌套的嵌入式文档的字段来查找文档

来自分类Dev

如何在嵌入式数组mongodb中查询嵌入式文档

来自分类Dev

MongoDB $ n在嵌入式文档的某些字段中

来自分类Dev

查询MongoEngine中的嵌入式文档列表

来自分类Dev

Mongoid:基于嵌入式文档数组的大小查询

来自分类Dev

查询mongodb中的嵌入式文档数组

来自分类Dev

使用Presto查询MongoDB嵌入式/嵌套文档的数组

来自分类Dev

MongoDB:与查询不匹配的嵌入式文档

来自分类Dev

Mongoid嵌套嵌入式文档保存忽略查询

来自分类Dev

MongoDB嵌入式文档自我查询

来自分类Dev

Mongoid在单个查询中推送新的嵌入式文档

来自分类Dev

在Django,Python中使用MongoEngine查询嵌入式文档

Related 相关文章

  1. 1

    Spring Data Mongo DB查询嵌入式文档的内部字段(DBRef)

  2. 2

    查询具有大小的Mongo嵌入式文档

  3. 3

    mongoengine查询嵌入式文档列表

  4. 4

    mongoid-查询嵌入式文档

  5. 5

    查询MongoDB中的嵌入式文档

  6. 6

    春季查询嵌入式文档的数组

  7. 7

    流星-查询嵌入式文档

  8. 8

    是否可以查询嵌入式文档?

  9. 9

    Spring Data Mongo-在嵌入式文档中应用唯一的组合字段

  10. 10

    Mongo查询键值不是特定值的嵌入式文档

  11. 11

    如何从mongodb中的嵌套嵌入式文档中查询和返回单个字段?

  12. 12

    MongoDB聚合查询-重命名嵌入式文档中返回的字段

  13. 13

    Mongodb node.js 查询嵌入式文档具有多个值的单个字段。

  14. 14

    从嵌入式文档Mongo Java获得价值

  15. 15

    从Mongo Engine中的ListfField删除嵌入式文档

  16. 16

    Mongo + Ruby Rails:获取所有嵌入式文档

  17. 17

    Mongo将嵌入式文档转换为数组

  18. 18

    是否有任何查询通过检查mongoDb中嵌套的嵌入式文档的字段来查找文档

  19. 19

    如何在嵌入式数组mongodb中查询嵌入式文档

  20. 20

    MongoDB $ n在嵌入式文档的某些字段中

  21. 21

    查询MongoEngine中的嵌入式文档列表

  22. 22

    Mongoid:基于嵌入式文档数组的大小查询

  23. 23

    查询mongodb中的嵌入式文档数组

  24. 24

    使用Presto查询MongoDB嵌入式/嵌套文档的数组

  25. 25

    MongoDB:与查询不匹配的嵌入式文档

  26. 26

    Mongoid嵌套嵌入式文档保存忽略查询

  27. 27

    MongoDB嵌入式文档自我查询

  28. 28

    Mongoid在单个查询中推送新的嵌入式文档

  29. 29

    在Django,Python中使用MongoEngine查询嵌入式文档

热门标签

归档