Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 26, 2021 02:11 pm GMT

MongoDB updateOne() , updateMany() e seus operadores

Atualizando documentos

No MongoDB temos diversos mtodos que nos ajudam a atualizar nossos documentos, por exemplo: adicionar um novo campo ou remov-lo e at adicionar um novo item em uma array ou remover.

Nesse artigo, vou mostrar alguns dos mtodos que mais utilizo para atualizar documentos juntamente com alguns operadores de atualizao. Vamos usar como exemplo o documento abaixo:

Nosso Documento

{    "name": "Emanuel",    "password": "123456",    "email": "[email protected]"}

Mtodos e Operadores

No MongoDB possumos mais de 5 mtodos que nos auxiliam na atualizao de documentos, mas no nosso artigo iremos utilizar 2 em especfico que so: updateOne e updateMany.

Ambos no retornam o documento, mas vou estar deixando o retorno para demonstrao. Caso queira o retorno do documento utilize o mtodo findOneAndUpdate.

Mtodo updateOne

O mtodo updateOne responsvel pela atualizao de somente 1 documento. O mtodo recebe 3 parmetros que so: filter,
update e options que deixaremos para outro momento.

Exemplo

//filter => query do documento que deseja encontrar para alterao//update => operador que ir utilizar na atualizao do documentoconst filter = { name: "Emanuel" }const update = { $set: { name: "Rodrigo" } } //Abaixo explicaremos o que  o $set.const user = db.users.updateOne(filter, update)

Retorno

{"name": "Rodrigo", "email": "[email protected]", "password": "123456"}

Mtodo updateMany

O mtodo updateMany responsvel pela atualizao de diversos documentos (muita ateno ao usar esse comando). Todos os documentos que forem encontrados de acordo com a query passada sero alterados.

Documentos de exemplo

{    "name": "Emanuel",    "password": "123456",    "email": "[email protected]",    "genre": "male",},{    "name": "Rodrigo",    "password": "rodrigo123",    "email": "[email protected]",    "genre": "male"}

Exemplo

const filter = { genre: "male" }const update = { $set: { password: "123" } }const user = db.users.updateMany(filter, update)

Retorno

[{"name": "Rodrigo", "email": "[email protected]", "password": "123", "genre": "male"}, {"name": "Emanuel", "email": "[email protected]", "password": "123", "genre": "male"}]

Operadores de Atualizao

Os mtodos de atualizao possuem diversos operadores de atualizao que nos auxiliam na hora de atualizar um ou diversos documentos.
Na documentao voc encontra diversos, mas vou estar deixando os que mais utilizo.

Exemplo de como utilizar um operador

db.users.updateMany({ genre: "male"},{  $set: { genre: "female", name: "Robson" },  <operator2>: { <field2>: <value2>, ... },  ...})

Operador $set

Este operador responsvel por adicionar um novo campo no seu documento ou at a sobrepor um campo j existente.

Documento

{"name": "Rodrigo", "genre": "male"}

Exemplo

const user = db.users.updateMany({ name: "Rodrigo" }, { $set: { genre: "female" } })

Retorno

{"name": "Rodrigo", "genre": "female"}

Operador $inc

Este operador responsvel por incrementar ou decrementar um nmero ao campo (para decrementar s usar nmeros negativos)

Documento

{"name": "Rodrigo", "seguidores": 10}

Exemplo

const user = db.users.updateOne({ name: "Rodrigo" }, { $inc: { seguidores: 2 } })

Retorno

{"name": "Rodrigo", "seguidores": 12}

Operador $push

Este operador responsvel por adicionar um novo item a uma array.

Documento

{"name": "Rodrigo", "interests": ["basquete"]}

Exemplo

const user = db.users.updateOne({ name: "Rodrigo" }, { $push: { interests: "futebol" } })

Retorno

{"name": "Rodrigo", "interests": ["basquete", "futebol"]}

Operador $pull

Este operador responsvel por remover um item da sua array.

Documento

{"name": "Rodrigo", "interests": ["basquete", "futebol"]}

Exemplo

const user = db.users.updateOne({ name: "Rodrigo" }, { $pull: { interests: "basquete" } })

Retorno

{"name": "Rodrigo", "interests": ["futebol"]}

Concluso

Ento, utilizamos o mtodo updateOne quando queremos atualizar somente um documento e o mtodo updateMany quando desejamos atualizar diversos documentos. Com o uso dos operadores certos, conseguimos resultados bem legais para suas alteraes no banco.

Linkedin: Emanuel Ferreira
Email: [email protected]

Reviso do Texto: Ana Julia Lima


Original Link: https://dev.to/emanuelferreira/mongodb-updateone-updatemany-e-seus-operadores-55hp

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To