Menu Docs
Página inicial do Docs
/ / /
Node.js
/ /

Atualizar um documento

Você pode atualizar um único documento usando o arquivo collection.updateOne() método. O método updateOne() aceita um documento de filtro e um documento de atualização. Se a query corresponder aos documentos na coleção, o método aplicará as atualizações do documento de atualização aos campos e valores deles. O documento de atualização contém operadores de atualização que instruem o método sobre as alterações a serem feitas nas correspondências.

Você pode especificar opções de consulta adicionais utilizando o objeto options passado como o segundo parâmetro do método updateOne(). Defina a opção upsert como true para criar um novo documento se nenhum documento corresponder ao filtro. Para obter informações adicionais, consulte a documentação da API do updateOne().

updateOne() linha uma exceção se ocorrer um erro durante a execução. Se você especificar um valor em seu documento de atualização para o campo imutável _id, o método lançará uma exceção. Se o documento de atualização contiver um valor que viole regras de índice exclusivas, o método lançará uma exceção de duplicate key error.

Observação

Se seu aplicativo exigir o documento após a atualização, avalie usar o método collection.findOneAndUpdate(), que tem uma interface semelhante a updateOne(), mas também retorna o documento original ou atualizado.

O exemplo a seguir usa o operador de atualização $set, que especifica valores de atualização para campos do documento. Para obter mais informações sobre operadores de atualização, consulte a documentação de referência do operador de atualização do MongoDB.

Observação

Você pode utilizar este exemplo para se conectar a uma instância do MongoDB e interagir com um banco de dados que contém dados de amostra. Para saber mais sobre como se conectar à sua instância do MongoDB e carregar um conjunto de dados de amostra, consulte o guia Exemplos de uso.

1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8async function run() {
9 try {
10 const database = client.db("sample_mflix");
11 const movies = database.collection("movies");
12
13 // create a filter for a movie to update
14 const filter = { title: "Random Harvest" };
15
16 // this option instructs the method to create a document if no documents match the filter
17 const options = { upsert: true };
18
19 // create a document that sets the plot of the movie
20 const updateDoc = {
21 $set: {
22 plot: `A harvest of random numbers, such as: ${Math.random()}`
23 },
24 };
25
26 const result = await movies.updateOne(filter, updateDoc, options);
27 console.log(
28 `${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s)`,
29 );
30 } finally {
31 await client.close();
32 }
33}
34run().catch(console.dir);
1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8interface Movie {
9 plot: string;
10 title: string;
11}
12
13async function run() {
14 try {
15 const database = client.db("sample_mflix");
16 const movies = database.collection<Movie>("movies");
17
18 const result = await movies.updateOne(
19 { title: "Random Harvest" },
20 {
21 $set: {
22 plot: `A harvest of random numbers, such as: ${Math.random()}`,
23 },
24 },
25 { upsert: true }
26 );
27 console.log(
28 `${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s)`
29 );
30 } finally {
31 await client.close();
32 }
33}
34run().catch(console.dir);

Se você executar o exemplo acima, verá a seguinte saída:

1 document(s) matched the filter, updated 1 document(s)

Voltar

Atualizar e substituir operações