Atualizar campos em um documento
Nesta página
Visão geral
Nesta página, você pode aprender como usar o Driver MongoDB .NET /C# para atualizar campos em um documento MongoDB . Esta página descreve como criar objetos UpdateDefinition<TDocument>
que especificam as operações de atualização que você deseja executar nos campos. Você pode passar esses objetos para os métodos de atualização descritos na páginaAtualizar um.
O driver .NET/C# é compatível com os operadores de atualização de campo descritos no manual do MongoDB Server. Para especificar uma operação de atualização, chame o método correspondente da propriedade Builders.Update
. As seções a seguir descrevem esses métodos em mais detalhes.
Observação
Sobrecargas de método
Muitos dos métodos nesta página têm múltiplas sobrecargas. Os exemplos deste guia mostram apenas uma definição de cada método. Para obter mais informações sobre as sobrecargas disponíveis,consulte a documentação da API.
Dados de amostra
Os exemplos neste guia utilizam a coleção do restaurants
a partir do banco de dados do sample_restaurants
. Os documentos nesta coleção usam as seguintes classes Restaurant
, Address
e GradeEntry
como modelos:
public class Restaurant { public ObjectId Id { get; set; } public string Name { get; set; } [ ] public string RestaurantId { get; set; } public string Cuisine { get; set; } public Address Address { get; set; } public string Borough { get; set; } public List<GradeEntry> Grades { get; set; } }
public class Address { public string Building { get; set; } [ ] public double[] Coordinates { get; set; } public string Street { get; set; } [ ] public string ZipCode { get; set; } }
public class GradeEntry { public DateTime Date { get; set; } public string Grade { get; set; } public float? Score { get; set; } }
Observação
Os documentos na collection restaurants
usam a convenção de nomenclatura snake-case. Os exemplos neste guia usam um ConventionPack
para desserializar os campos na coleção em maiúsculas e minúsculas Pascal e mapeá-los para as propriedades na classe Restaurant
.
Para saber mais sobre serialização personalizada, consulte Serialização personalizada.
Essa coleção é dos conjuntos de dados de amostra fornecidos pelo Atlas. Consulte o Quick Start para saber como criar um cluster MongoDB gratuito e carregar esses dados de amostra.
Incrementar um valor
Para incrementar o valor de um campo em um valor específico, chame o método Builders.Update.Inc()
. Este método aceita os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Uma expressão que especifica o campo a ser incrementado. Tipo de Dados: |
| O valor pelo qual incrementar o campo . Tipo de Dados: |
Multiplicar um valor
Para multiplicar o valor de um campo por um valor específico, chame o método Builders.Update.Mul()
. Este método aceita os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Uma expressão que especifica o campo a ser atualizado. Tipo de Dados: |
| O valor pelo qual multiplicar o campo . Tipo de Dados: |
Renomear um campo
Para renomear um campo, chame o método Builders.Update.Rename()
. Este método aceita os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Uma expressão que especifica o campo a ser renomeado. Tipo de Dados: |
| O novo nome do campo. Tipo de Dados: |
Definir um valor
Para definir o valor de um campo para um valor específico, chame o método Builders.Update.Set()
. Este método aceita os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Uma expressão que especifica o campo a ser atualizado. Tipo de Dados: |
| O valor para o qual definir o campo . Tipo de Dados: |
Definir por comparação
Para atualizar o valor do campo para um valor especificado, mas somente se o valor especificado for maior que o valor atual do campo, chame o Builders.Update.Max()
método. Este método aceita os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Uma expressão que especifica o campo a ser atualizado. Tipo de Dados: |
| O valor para o qual definir o campo . Tipo de Dados: |
Para atualizar o valor do campo para um valor especificado, mas somente se o valor especificado for menor que o valor atual do campo, chame o Builders.Update.Min()
método. Este método aceita os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Uma expressão que especifica o campo a ser atualizado. Tipo de Dados: |
| O valor para o qual definir o campo . Tipo de Dados: |
Definir na inserção
Para definir o valor de um campo somente se o documento foi atualizado pela mesma operação, chame o método Builders.Update.SetOnInsert()
. Este método aceita os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Uma expressão que especifica o campo a ser atualizado. Tipo de Dados: |
| O valor para o qual definir o campo . Tipo de Dados: |
Definir a data atual
Para definir o valor de um campo para a data e hora atuais, chame o método Builders.Update.CurrentDate()
. Este método aceita os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Uma expressão que especifica o campo a ser atualizado. Tipo de Dados: |
| O formato da data e hora, definido no enumeração Tipo de Dados: UpdateDefinitionCurrentDateType? |
Redefinir um campo
Para remover um campo de um documento, chame o método Builders.Update.Unset()
. Este método aceita o seguinte parâmetro:
Parâmetro | Descrição |
---|---|
| Uma expressão que especifica o campo a ser removido. Tipo de Dados: |
Documentação da API
Para obter mais informações sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API: