MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cập nhật bản ghi lồng nhau trong mảng mongodb khi bạn không biết chỉ mục tài liệu

DEMO : Sân chơi MongoDB

Trước hết, có lỗi trong JSON của bạn.

JSON

[
  {
    "_id": "60753fd9b249ad0dfa1eeb48",
    "name": "Random Name 1",
    "email": "[email protected]",
    "likings": [
      {
        "breakfast": {
          "eat": "oats",
          "drink": "milk"
        }
      },
      {
        "lunch": {
          "eat": "beef",
          "drink": "pepsi"
        }
      },
      {
        "dinner": {
          "eat": "steak",
          "drink": "champagne"
        }
      }
    ]
  },
  {
    "_id": "60753fd9b249ad0dfa1eeb58",
    "name": "Random Name 2",
    "email": "[email protected]",
    "likings": [
      {
        "breakfast": {
          "eat": "cereals",
          "drink": "coffee"
        }
      },
      {
        "lunch": {
          "eat": "salad",
          "drink": "hot-water"
        }
      },
      {
        "dinner": {
          "eat": "biryani",
          "drink": "apple juice"
        }
      }
    ]
  }
]

Hãy thử điều này:

db.collection.update({
  "name": "Random Name 2",
  "likings.dinner": {
    "$exists": true
  }
},
{
  "$set": {
    "likings.$.dinner.drink": "PEPSI"
  }
})

Bạn có thể thay đổi dinner vào bất kỳ trường nào bạn muốn cập nhật cho phù hợp.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo tìm giá trị với khóa mẹ không xác định

  2. Cách loại trừ một số trường khỏi tài liệu

  3. Làm cách nào để bắt MongoSecurityException?

  4. Mongoose findOneAndUpdate Cập nhật nhiều trường

  5. mongodb không thể khởi động trên windows?