MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Atualizando um documento incorporado no MongoDB com o driver C# oficial


Você pode usar o recurso de modificação de matriz posicional do MongoDB para atualizar uma divisão inteira na matriz de uma só vez da seguinte maneira:
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))
);

As principais coisas que acontecem aqui são:
  1. O uso do "$" em Update.Set
  2. Como Update.Set requer um BsonValue como seu segundo argumento, temos que usar um BsonDocumentWrapper para armazenar o valor da divisão (o parâmetro de tipo IDivision para Create define o nominalType na serialização para IDivision, o que resulta na gravação do discriminador "_t") .