sql >> Database >  >> NoSQL >> MongoDB

Een subdocument bijwerken dat is opgenomen in een array in een MongoDB-document

U kunt een bestaand array-element bijwerken met een $set bewerking die de $ . gebruikt positionele operator om het array-element dat overeenkomt in de selector als volgt te identificeren:

Documents.update(
  {_id: Session.get("current_document_id"), 'schema.name': "first_name"}, 
  {$set: {'schema.$': {type: "text", size: 7, name: name, label: "First Name2"}}}
);

Dit vervangt het overeenkomende schema element met degene die is opgenomen in de $set voorwerp.

Als u alleen afzonderlijke velden van het beoogde schema wilt bijwerken element, kunt u puntnotatie gebruiken. Om bijvoorbeeld alleen de size . bij te werken en name velden:

Documents.update(
  {_id: Session.get("current_document_id"), 'schema.name': "first_name"}, 
  {$set: {'schema.$.size': 7, 'schema.$.name': name}}
);


  1. Heroku-achtergrondtaken uitvoeren met slechts 1 web-dyno en 0 worker-dyno's

  2. MongoDB - objecten? Waarom heb ik _id in totaal nodig

  3. mangoest opslaan versus invoegen versus maken

  4. Hoe gebruik ik Node.js-clusters met mijn eenvoudige Express-app?