1

突变的要求是表现得像 upsert。例如,在下面的 json 突变中,需要更改 Rooms->Availability 部分下的“状态”。我不想像这样硬编码

db.collection.update({
    'Rooms.Availability.status':true
},{
    $set : {
        'Rooms.Availability.status':False
    }
}) 

对于特定的数组索引,因为在其他文档中可能没有“状态”或“可用性”键。

下面是类似的 JSON 结构。同一集合中的其他 JSON 文档中的键可以不同。

@GraphQLMutation(name = "updateHotelDetails")
public Hotel updateHotelDetails(Hotel h){ // Do I need to pass whole object as argument or only specific key-value?
    mongoTemplate.updateFirst(....); // How can I write update code without hard coding?

}

文件 1:

{
  "_id" : ObjectId("71testsrtdtsea6995432"),
  "HotelName": "Test71testsrtdtsea699fff",
  "Description": ".....",
  "Address": {
    "Street": "....",
    "City": "....",
    "State": "...."
  },
  "Rooms": [
    {
      "Description": "......",
      "Type": ".....",
      "Price": "....."
      "Availability": [
             "status": false,
            "readOnly": false
          ]
    },
    {
      "Description": "......",
      "Type": "....",
      "Price": "..."
      "Availability": [
            "status": true,
            "readOnly": false
          ]
      "newDynamickey": [
            {}
          ]
    },
  ]
  "AdditionalData": [
    {
        "key1": "Vlaue1",
        "key2":"Value2"
    },
    {...}
  ]
}
4

0 回答 0