sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur uppdaterar man MongoDB dynamiska attribut?

Använda Mongo Multi Update dra först alla k:[color,style] och sedan addToSet i attr matrisgivna värden. Uppdateringsfrågan ser ut så här nedan :

db.runCommand({
  "update": "sku",//here sku is collection name
  "updates": [{
    "q": {
      "attr.k": "manufacturer",
      "attr.v": "ShoesForAll"
    },
    "u": {
      "$pull": {
    "attr": {
      "k": {
        "$in": ["color", "style"]
      }
    }
      }
    },
    "multi": true
  }, {
    "q": {
      "attr.k": "manufacturer",
      "attr.v": "ShoesForAll"
    },
    "u": {
      "$addToSet": {
    "attr": {
      "$each": [{
        "k": "color",
        "v": "red"
      }, {
        "k": "style",
        "v": "sport"
      }]
    }
      }
    }
  }]
})


  1. Hantera MySQL, MongoDB &PostgreSQL med ChatOps från Slack

  2. Hur man uppdaterar och lägger upp flera dokument i MongoDB med C#-drivrutiner

  3. MongoDB Update Array-element

  4. TypeError:callback.apply är inte en funktion efter allowDiskUse