Menu Docs
Página inicial do Docs
/
MongoDB Shell
/

Atualize documentos

Nesta página

  • Atualizar sintaxe do operador
  • Atualizar um único documento
  • Atualizar vários documentos
  • Substituir um documento
  • Atualizar comportamento
  • Saiba mais

O shell do MongoDB oferece os seguintes métodos para atualizar documentos em uma coleção

Os exemplos nesta página referenciam o conjunto de dados de amostra do Atlas . Você pode criar um agrupamento de Atlas gratuito e preencher este agrupamento com dados de amostra para acompanhar junto com estes exemplos. Para mais informações, consulte Iniciar com Atlas.

Para atualizar um documento, o MongoDB fornece operadores de atualização, como $set, para modificar os valores de campo.

Para usar os operadores de atualização, passe para os métodos de atualização um documento de atualização do formulário:

{
<update operator>: { <field1>: <value1>, ... },
<update operator>: { <field2>: <value2>, ... },
...
}

Alguns operadores de atualização, como $set, criam o campo se o campo não existir. Consulte a referência individual do operador de atualização para obter detalhes.

Utilize o método db.collection.updateOne() para atualizar o documento primeiro que corresponde a um filtro especificado.

Observação

O MongoDB preserva uma ordem de classificação natural para documentos. Essa ordenação é um recurso de implementação interna, e você não deve confiar em nenhuma estrutura específica dentro dela. Para saber mais, consulte ordem natural.

Exemplo

Para atualizar o documento primeiro na collection sample_mflix.movies onde title é igual a "Twilight":

use sample_mflix
db.movies.updateOne( { title: "Twilight" },
{
$set: {
plot: "A teenage girl risks everything–including her life–when she falls in love with a vampire."
},
$currentDate: { lastUpdated: true }
})

A operação de atualização:

  • Utiliza o operador $set para atualizar o valor do campo plot para o filme Twilight.

  • Utiliza o operador $currentDate para atualizar o valor do campo lastUpdated para a data atual. Se o campo lastUpdated não existir, $currentDate criará o campo. Consulte $currentDate para obter detalhes.

Utilize o db.collection.updateMany() para atualizar todos os documentos que correspondem a um filtro especificado.

Exemplo

Para atualizar todos os documentos na coleção sample_airbnb.listingsAndReviews para atualizar onde security_deposit é menor do que 100:

use sample_airbnb
db.listingsAndReviews.updateMany(
{ security_deposit: { $lt: 100 } },
{
$set: { security_deposit: 100, minimum_nights: 1 }
}
)

A operação de atualização utiliza o operador $set para atualizar o valor do campo security_deposit para 100 e o valor do campo minimum_nights para 1.

Para substituir todo o conteúdo de um documento, exceto o campo _id , passe um documento totalmente novo como segundo argumento para db.collection.replaceOne().

Ao substituir um documento, o documento de substituição deve conter apenas pares de campo/valor. Não inclua expressões de operadores de atualização .

O documento de substituição pode ter campos diferentes do documento original. No documento de substituição, você pode omitir o campo _id, pois o campo _id é imutável; no entanto, se você incluir o campo _id, ele deverá ter o mesmo valor que o valor atual.

Exemplo

Para substituir o primeiro documento da coleção sample_analytics.accounts por account_id: 371138:

db.accounts.replaceOne(
{ account_id: 371138 },
{ account_id: 893421, limit: 5000, products: [ "Investment", "Brokerage" ] }
)

Execute o seguinte comando para ler seu documento atualizado:

db.accounts.findOne( { account_id: 893421 } )

Para saber mais sobre o comportamento específico da atualização de documentos, consulte Comportamento.

Voltar

Consultar documentos

Próximo

Exclua documentos