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

Substituir um documento

Você pode substituir um único documento usando o collection.replaceOne() método. replaceOne() aceita um documento de query e um documento de substituição. Se a query corresponder a um documento na collection, ela substituirá o primeiro documento que corresponde à query pelo documento de substituição fornecido. Essa operação remove todos os campos e valores do documento original e os substitui pelos campos e valores do documento de substituição. O valor do campo _id permanece o mesmo, a menos que você especifique explicitamente um novo valor para _id no documento de substituição.

Você pode especificar mais opções, como upsert, usando o parâmetro opcional options. Se você definir o campo de opção upsert como true, o método inserirá um novo documento se nenhum documento corresponder à query.

O método replaceOne() lança uma exceção se ocorrer um erro durante a execução. Por exemplo, se você especificar um valor que viole uma regra de índice única, o replaceOne() lançará um duplicate key error.

Observação

Se o aplicativo exigir o documento após a atualização, use o método collection.findOneAndReplace() , que possui uma interface semelhante a replaceOne(). Você pode configurar o findOneAndReplace() para gerar o documento correspondente original ou o documento de substituição.

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
11 // Get the database and collection on which to run the operation
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 // Create a query for documents where the title contains "The Cat from"
16 const query = { title: { $regex: "The Cat from" } };
17
18 // Create the document that will replace the existing document
19 const replacement = {
20 title: `The Cat from Sector ${Math.floor(Math.random() * 1000) + 1}`,
21 };
22
23 // Execute the replace operation
24 const result = await movies.replaceOne(query, replacement);
25
26 // Print the result
27 console.log(`Modified ${result.modifiedCount} document(s)`);
28 } finally {
29 await client.close();
30 }
31}
32run().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 title: string;
10}
11
12async function run() {
13 try {
14 const database = client.db("sample_mflix");
15 const movies = database.collection<Movie>("movies");
16
17 const result = await movies.replaceOne(
18 { title: { $regex: "The Cat from" } },
19 {
20 title: `The Cat from Sector ${Math.floor(Math.random() * 1000) + 1}`,
21 }
22 );
23 console.log(`Modified ${result.modifiedCount} document(s)`);
24 } finally {
25 await client.close();
26 }
27}
28run().catch(console.dir);

Ao executar o exemplo anterior, você vê a seguinte saída:

Modified 1 document(s)

Voltar

Atualizar vários documentos