10.7. Atualizando documentos no MongoDB: Utilizando o comando findAndModify no MongoDB

Página 51

Em qualquer aplicação de banco de dados, uma das operações mais comuns é a atualização de registros. No MongoDB, você pode fazer isso usando o comando findAndModify. Este comando é muito útil porque permite que você localize e atualize um documento em uma única operação.

Para entender melhor como o comando findAndModify funciona, vamos considerar um exemplo. Suponha que temos uma coleção chamada 'students' com o seguinte documento:

{
    "_id" : ObjectId("5f6d1a87e87a5e3a3cfebae8"),
    "name" : "John Doe",
    "age" : 20,
    "courses" : ["Math", "Science"]
}

Se quisermos atualizar a idade de John Doe para 21, podemos usar o comando findAndModify da seguinte maneira:

db.students.findAndModify({
    query: { name: "John Doe" },
    update: { $set: { age: 21 } }
});

O comando acima procura um documento na coleção 'students' onde o campo 'name' é igual a 'John Doe'. Em seguida, ele atualiza a idade desse documento para 21.

Uma coisa importante a notar sobre o comando findAndModify é que ele retorna o documento antes da atualização por padrão. Se você quiser que ele retorne o documento após a atualização, pode passar a opção 'new' como true. Por exemplo:

db.students.findAndModify({
    query: { name: "John Doe" },
    update: { $set: { age: 21 } },
    new: true
});

Outra opção útil que você pode passar para o comando findAndModify é o 'upsert'. Se você definir 'upsert' como true, o MongoDB criará um novo documento se nenhum documento corresponder à consulta. Por exemplo:

db.students.findAndModify({
    query: { name: "Jane Doe" },
    update: { $set: { age: 22 } },
    new: true,
    upsert: true
});

No comando acima, se não houver nenhum documento onde o campo 'name' é igual a 'Jane Doe', o MongoDB criará um novo documento com 'name' como 'Jane Doe' e 'age' como 22.

O comando findAndModify também permite que você atualize vários campos de uma vez. Por exemplo, se quisermos atualizar a idade de John Doe para 21 e adicionar 'English' à lista de cursos que ele está cursando, podemos fazer isso da seguinte maneira:

db.students.findAndModify({
    query: { name: "John Doe" },
    update: { $set: { age: 21 }, $push: { courses: "English" } },
    new: true
});

Além disso, o comando findAndModify permite que você use operadores de atualização do MongoDB, como $set, $inc, $push, $pull e assim por diante. Isso torna o comando findAndModify uma ferramenta muito poderosa para atualizar documentos no MongoDB.

Em resumo, o comando findAndModify é uma maneira eficiente de localizar e atualizar documentos no MongoDB. Ele oferece muitas opções que permitem personalizar o comportamento da operação de atualização, tornando-o uma ferramenta essencial para qualquer desenvolvedor MongoDB.

Entender como usar comandos como findAndModify é fundamental para trabalhar efetivamente com o MongoDB. Ao dominar essas técnicas, você será capaz de criar e manter bancos de dados MongoDB eficientes e de alto desempenho.

Now answer the exercise about the content:

Qual é a função do comando findAndModify no MongoDB?

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

5210.8. Atualizando documentos no MongoDB: Práticas recomendadas para atualização de documentos no MongoDB

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text