MongoDB使用聚合连接两个字段,其中实际字段位于数组中

我有一个如下的mongo文件;

{
    "_id" : "123",
    "info" : {
        "batch" : "Batch1-Minor"
    },
    "batchElements" : {
        "elements" : [ 
             {
               "_id" : "elementId1",
               "type": "ABC"
             },  
             {
                "_id" : "elementId2",
                "type": "ABC"
             }
        ]
    }
}

如何通过连接更改_id内部字段来生成聚合输出elements$info.batch$batchElements.elements._id

预期产量:

{
    "_id" : "123",
    "info" : {
        "batch" : "Batch1-Minor"
    },
    "batchElements" : {
        "elements" : [ 
             {
               "_id" : "Batch1-Minor-elementId1",
               "type": "ABC"
             },  
             {
                "_id" : "Batch1-Minor-elementId2",
                "type": "ABC"
             }
        ]
    }
}
谁-假面真灵魂

下面的查询我们通过迭代batchElements.elements和形成与对象type_id&终于$map将推动对象的数组回到batchElements.elements哪里$addFields会将该字段添加到实际的文档,试试这个:

db.yourCollectionName.aggregate([{
    $addFields: {
        'batchElements.elements': {
            $map:
            {
                input: "$batchElements.elements",
                as: "each",
                in: { type: '$$each.type', '_id': { $concat: ["$info.batch", "-", "$$each._id"] } }
               /** So if you've multiple fields in each object then instead of listing all, You need to use 
                in: { $mergeObjects: ["$$each", { '_id': { $concat: ["$info.batch", "-", "$$each._id"] } }] } */
            }
        }
    }
}])

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当一个字段位于子文档数组中时,如何从集合中获取两个字段的不同组合

来自分类Dev

Delphi:两个字段位于相同的内存位置-编译器错误?

来自分类Dev

比较mongodb中不同数组的两个字段

来自分类Dev

mongoDB聚合和除法两个字段

来自分类Dev

mongodb聚合匹配两个字段

来自分类Dev

mongodb聚合匹配两个字段

来自分类Dev

教义MongoDB,其中两个字段相等

来自分类Dev

教义MongoDB,其中两个字段相等

来自分类Dev

具有两个字段的MongoDB聚合数组

来自分类Dev

如何在mongoDB中的聚合过滤器中比较两个字段

来自分类Dev

MongoDB:查找文档,其中两个字段的值在已知良好对的列表中。

来自分类Dev

Mongodb:在两个字段的数组上创建索引

来自分类Dev

mongodb中两个字段上出现的总数

来自分类Dev

如何从mongoDB中的两个字段进行计数

来自分类Dev

在mongodb中交换两个字段

来自分类Dev

mongodb中两个字段上出现的总数

来自分类Dev

确保数组中的两个字段是唯一的

来自分类Dev

使用僧侣在mongodb中仅选择两个字段

来自分类Dev

连接来自两个字段的数据而忽略其中之一的NULL值?

来自分类Dev

MongoDB将文档字段分为两个字段

来自分类Dev

Elasticsearch:在两个字段上聚合

来自分类Dev

如何构建聚合两个字段的 mongo 查询?

来自分类Dev

将两个字段合并到mongodb中的新对象字段中

来自分类Dev

它在 linq 中使用左连接跨越两个表与两个字段

来自分类Dev

$ project一个新字段,作为mongodb中至少两个字段

来自分类Dev

在mongo聚合中匹配两个字符串对象字段

来自分类Dev

结合两个集合并比较mongodb中的两个字段值

来自分类Dev

SqlServer XQuery始终连接两个字段

来自分类Dev

Linq查询连接两个字段

Related 相关文章

  1. 1

    当一个字段位于子文档数组中时,如何从集合中获取两个字段的不同组合

  2. 2

    Delphi:两个字段位于相同的内存位置-编译器错误?

  3. 3

    比较mongodb中不同数组的两个字段

  4. 4

    mongoDB聚合和除法两个字段

  5. 5

    mongodb聚合匹配两个字段

  6. 6

    mongodb聚合匹配两个字段

  7. 7

    教义MongoDB,其中两个字段相等

  8. 8

    教义MongoDB,其中两个字段相等

  9. 9

    具有两个字段的MongoDB聚合数组

  10. 10

    如何在mongoDB中的聚合过滤器中比较两个字段

  11. 11

    MongoDB:查找文档,其中两个字段的值在已知良好对的列表中。

  12. 12

    Mongodb:在两个字段的数组上创建索引

  13. 13

    mongodb中两个字段上出现的总数

  14. 14

    如何从mongoDB中的两个字段进行计数

  15. 15

    在mongodb中交换两个字段

  16. 16

    mongodb中两个字段上出现的总数

  17. 17

    确保数组中的两个字段是唯一的

  18. 18

    使用僧侣在mongodb中仅选择两个字段

  19. 19

    连接来自两个字段的数据而忽略其中之一的NULL值?

  20. 20

    MongoDB将文档字段分为两个字段

  21. 21

    Elasticsearch:在两个字段上聚合

  22. 22

    如何构建聚合两个字段的 mongo 查询?

  23. 23

    将两个字段合并到mongodb中的新对象字段中

  24. 24

    它在 linq 中使用左连接跨越两个表与两个字段

  25. 25

    $ project一个新字段,作为mongodb中至少两个字段

  26. 26

    在mongo聚合中匹配两个字符串对象字段

  27. 27

    结合两个集合并比较mongodb中的两个字段值

  28. 28

    SqlServer XQuery始终连接两个字段

  29. 29

    Linq查询连接两个字段

热门标签

归档