【问题标题】:Reply head informations and add extract array to same result回复头部信息并将提取数组添加到相同的结果
【发布时间】:2021-11-06 02:12:04
【问题描述】:

请有人帮我解决这种情况?

我有这个假 JSON...

[
  {
    "user": {
      "type": "PF",
      "code": 12345,
      "Name": "Darth Vader",
      "currency": "BRL",
      "status": "SINGLE",
      "localization": "NABOO",
      "createDate": 1627990848665,
      "olderAdress": [
        {
          "localization": "DEATH STAR",
          "createDate": 1627990848775
        },
        {
          "localization": "TATOOINE",
          "createDate": 1627990555888
        },
        
      ]
    }
  }
]

我的想法是,我需要提取“olderAdress”并创建新寄存器,但我也需要保留原始寄存器。 示例:这是我希望的结果。

[
  {
    "_id": ObjectId("5a3456e000102030405000000"),
    "user": {
      "Name": "Darth Vader",
      "code": 12345,
      "createDate":1627990848665,
      "currency": "BRL",
      "localization": "NABOO",
      "status": "SINGLE",
      "type": "PF"
    }
  },  
  {
    "_id": ObjectId("5a789e000102030405000000"),
    "user": {
      "Name": "Darth Vader",
      "code": 12345,
      "createDate": 1627990848775,
      "currency": "BRL",
      "localization": "DEATH STAR",
      "status": "SINGLE",
      "type": "PF"
    }
  },
  {
    "_id": ObjectId("5a991e000102030405000000"),
    "user": {
      "Name": "Darth Vader",
      "code": 12345,
      "createDate": 1627990555888,
      "currency": "BRL",
      "localization": "TATOOINE",
      "status": "SINGLE",
      "type": "PF"
    }
  }
]

我在此链接 (Test to extract values) 中尝试相同的想法进行测试,但不幸的是我不能。有人可以帮帮我吗?

【问题讨论】:

    标签: json mongodb spring-data-jpa aggregation-framework unwind


    【解决方案1】:

    您已经很接近了,您要做的只是在$unwinding 之前将新位置添加到数组中。

    像这样:

    db.collection.aggregate([
      {
        "$addFields": {
          "user.olderAdress": {
            "$concatArrays": [
              "$user.olderAdress",
              [
                {
                  "localization": "NABOO",
                  "createDate": "$$NOW"
                }
              ]
            ]
          }
        }
      },
       ... rest of pipeline ...
    ])
    

    Mongo Playground

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2021-07-22
    • 1970-01-01
    • 2017-12-27
    • 2015-09-28
    相关资源
    最近更新 更多