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.

Agora responda o exercício sobre o conteúdo:

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

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Próxima página do Ebook Gratuito:

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

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto