MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Актуализиране на вложен запис в масив mongodb, когато не знаете индекса на документа

ДЕМО :MongoDB Playground

Първо, има грешки във вашия JSON.

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"
        }
      }
    ]
  }
]

Опитайте това:

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

Можете да промените dinner към всяко поле, което искате да актуализирате съответно.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Преглед на WiredTiger Storage Engine за MongoDB

  2. Използване на функционалност Mongoose / MongoDB $addToSet върху масив от обекти

  3. Проблем с безопасно_формат_монтиране на Google Compute Engine – посочете грешка във типа на файловата система

  4. Как мога да изпълня оператор СЛЕД като цикълът приключи в javascript?

  5. Заявка с низ формат на дата в mongodb