sql >> Database teknologi >  >> NoSQL >> MongoDB

Opdatering af et indlejret dokument i MongoDB med officiel C#-driver

Du kan bruge den positionelle array-modifikationsfunktion i MongoDB til at opdatere en hel division i arrayet på én gang som følger:

var division = GetDivisionById(1);
division.Name = "New Name";
// change any other properties of division you want
collection.Update(
    Query.EQ("Divisions._id", 1),
    Update.Set("Divisions.$", BsonDocumentWrapper.Create<IDivision>(division))
);

De vigtigste ting, der foregår her, er:

  1. Brugen af ​​"$" i Update.Set
  2. Da Update.Set kræver en BsonValue som sit andet argument, er vi nødt til at bruge en BsonDocumentWrapper til at holde divisionsværdien (IDivision type parameteren til Create indstiller nominalType ved serialisering til IDivision, hvilket resulterer i, at "_t" diskriminatoren skrives) .



  1. MongoDB aggregate() - fejl TypeError:Kan ikke kalde metoden 'forEach' af undefined

  2. (node:63208) DeprecationWarning:collection.ensureIndex er forældet. Brug createIndex i stedet

  3. kan ikke lave grundlæggende mongo shell script med godkendelse

  4. replika Sæt mongo docker-compose