Menu Docs
Página inicial do Docs
/ / /
Driver C#/ .NET
/ / / /

Atualizar campos em um documento

Nesta página

  • Visão geral
  • Dados de amostra
  • Incrementar um valor
  • Multiplicar um valor
  • Renomear um campo
  • Definir um valor
  • Definir por comparação
  • Definir na inserção
  • Definir a data atual
  • Redefinir um campo
  • Documentação da API

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.

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; }
[BsonElement("restaurant_id")]
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; }
[BsonElement("coord")]
public double[] Coordinates { get; set; }
public string Street { get; set; }
[BsonElement("zipcode")]
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.

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

field

Uma expressão que especifica o campo a ser incrementado.

Tipo de Dados: Expression<Func<TDocument, TField>>

value

O valor pelo qual incrementar o campo .

Tipo de Dados: TField

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

field

Uma expressão que especifica o campo a ser atualizado.

Tipo de Dados: Expression<Func<TDocument, TField>>

value

O valor pelo qual multiplicar o campo .

Tipo de Dados: TField

Para renomear um campo, chame o método Builders.Update.Rename(). Este método aceita os seguintes parâmetros:

Parâmetro
Descrição

field

Uma expressão que especifica o campo a ser renomeado.

Tipo de Dados: Expression<Func<TDocument, TField>>

newName

O novo nome do campo.

Tipo de Dados: string

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

field

Uma expressão que especifica o campo a ser atualizado.

Tipo de Dados: Expression<Func<TDocument, TField>>

value

O valor para o qual definir o campo .

Tipo de Dados: TField

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

field

Uma expressão que especifica o campo a ser atualizado.

Tipo de Dados: Expression<Func<TDocument, TField>>

value

O valor para o qual definir o campo .

Tipo de Dados: TField

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

field

Uma expressão que especifica o campo a ser atualizado.

Tipo de Dados: Expression<Func<TDocument, TField>>

value

O valor para o qual definir o campo .

Tipo de Dados: TField

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

field

Uma expressão que especifica o campo a ser atualizado.

Tipo de Dados: Expression<Func<TDocument, TField>>

value

O valor para o qual definir o campo .

Tipo de Dados: TField

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

field

Uma expressão que especifica o campo a ser atualizado.

Tipo de Dados: Expression<Func<TDocument, TField>>

type

O formato da data e hora, definido no enumeração UpdateDefinitionCurrentDateType. O valor padrão é null.

Tipo de Dados: UpdateDefinitionCurrentDateType?

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

field

Uma expressão que especifica o campo a ser removido.

Tipo de Dados: Expression<Func<TDocument, TField>>

Para obter mais informações sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API:

Voltar

UpdateOne