sql >> Base de Datos >  >> NoSQL >> MongoDB

Actualización de un documento incrustado en MongoDB con el controlador C# oficial

Puede usar la función de modificación de matriz posicional de MongoDB para actualizar una división completa en la matriz a la vez de la siguiente manera:

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))
);

Las cosas clave que suceden aquí son:

  1. El uso de "$" en Update.Set
  2. Dado que Update.Set requiere un BsonValue como su segundo argumento, tenemos que usar un BsonDocumentWrapper para contener el valor de división (el parámetro de tipo IDivision para Create establece el tipo nominal en la serialización a IDivision, lo que da como resultado que se escriba el discriminador "_t") .