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. キーが存在しない場合は、値を配列にプッシュしますMongoose

    2. なぜ春のデータmongoは時間のあるフィールドを返さないのですか?

    3. SQLから多対多の関係をmongoDBコレクションに変換する方法は?

    4. Mongoが日付を文字列として保存するのはなぜですか?