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 mais opções de consulta 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 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.
Exemplo
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.
1 // Update a document 2 3 import { MongoClient } from "mongodb"; 4 5 // Replace the uri string with your MongoDB deployment's connection string 6 const uri = "<connection string uri>"; 7 8 const client = new MongoClient(uri); 9 10 async 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 42 run().catch(console.dir); 
1 // Update a document 2 3 import { MongoClient } from "mongodb"; 4 5 // Replace the uri string with your MongoDB deployment's connection string 6 const uri = "<connection string uri>"; 7 8 const client = new MongoClient(uri); 9 10 // Define the Movie interface 11 interface Movie { 12   plot: string; 13   title: string; 14 } 15 16 async 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 45 run().catch(console.dir); 
Se você executar o exemplo acima, verá a seguinte saída:
1 document(s) matched the filter, updated 1 document(s)