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

Atualizar um documento

Você pode atualizar um único documento usando o método collection.updateOne() . O método updateOne() aceita um documento de filtro e um documento de atualização. Se a consulta corresponder aos documentos da coleção, o método aplicará as atualizações do documento de atualização aos campos e valores correspondentes. 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 mais opções de consulta utilizando o options objeto passado como o segundo parâmetro do updateOne() método . Defina a upsert opção como true para criar um novo documento se nenhum documento corresponder ao filtro. Para obter mais informações, consulte a documentação da API 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 oGuia de exemplos de uso .

1// Update a document
2
3import { MongoClient } from "mongodb";
4
5// Replace the uri string with your MongoDB deployment's connection string
6const uri = "<connection string uri>";
7
8const client = new MongoClient(uri);
9
10async function run() {
11 try {
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 // Create a filter for movies with the title "Random Harvest"
16 const filter = { title: "Random Harvest" };
17
18 /* Set the upsert option to insert a document if no documents match
19 the filter */
20 const options = { upsert: true };
21
22 // Specify the update to set a value for the plot field
23 const updateDoc = {
24 $set: {
25 plot: `A harvest of random numbers, such as: ${Math.random()}`
26 },
27 };
28
29 // Update the first document that matches the filter
30 const result = await movies.updateOne(filter, updateDoc, options);
31
32 // Print the number of matching and modified documents
33 console.log(
34 `${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s)`,
35 );
36 } finally {
37 // Close the connection after the operation completes
38 await client.close();
39 }
40}
41// Run the program and print any thrown errors
42run().catch(console.dir);
1// Update a document
2
3import { MongoClient } from "mongodb";
4
5// Replace the uri string with your MongoDB deployment's connection string
6const uri = "<connection string uri>";
7
8const client = new MongoClient(uri);
9
10// Define the Movie interface
11interface Movie {
12 plot: string;
13 title: string;
14}
15
16async function run() {
17 try {
18 const database = client.db("sample_mflix");
19 const movies = database.collection<Movie>("movies");
20
21 /* Update a document that has the title "Random Harvest" to have a
22 plot field with the specified value */
23 const result = await movies.updateOne(
24 { title: "Random Harvest" },
25 {
26 $set: {
27 plot: `A harvest of random numbers, such as: ${Math.random()}`,
28 },
29 },
30 /* Set the upsert option to insert a document if no documents
31 match the filter */
32 { upsert: true }
33 );
34
35 // Print the number of matching and modified documents
36 console.log(
37 `${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s)`
38 );
39 } finally {
40 // Close the connection after the operation completes
41 await client.close();
42 }
43}
44// Run the program and print any thrown errors
45run().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