MongoDB - adicionar um campo a todos os documentos de uma coleção

Publicado por Fábio Berbert de Paula em 24/08/2020

[ Hits: 839 ]

Blog: https://youtube.com/c/cotidianohackeado

 


MongoDB - adicionar um campo a todos os documentos de uma coleção



Essa dica vai para quem usa MongoDB e precisa adicionar um campo a todos os documentos de uma coleção.

Estou considerando que você já tem o MongoDB instalado e configurado e uma coleção disponível.

O primeiro passo é acessar o shell do MongoDB:

mongo

E acessar o bando de dados desejado:

use meuBanco

Vamos supor que você queira adicionar um campo "ativo" à coleção "usuarios" do banco de dados "meuBanco":

db.usuarios.update(
  {},
  {$set: {'ativo': true},
  false,
  true
)

Onde:
  • {} = critério, vazio indica todos os documentos;
  • {$set: {'ativo': true} = $set é o operador principal, que indica que estamos atualizando usando os dados existentes do documento e adicionando/atualizando o campo informado;
  • false = upsert é falso, significa que caso o registro não exista, não irá criar um novo;
  • true = multi é verdadeiro, indica que iremos atualizar todos os documentos em nosso critério ao invés de apenas um.

O título da dica indica que estamos adicionando o campo à todos os documentos da coleção, mas você pode adicionar algum critério/filtro a seu gosto no comando apresentado.

Outras dicas deste autor

Programando em Python no VIM com recurso de auto-completar (python-jedi)

Jogando Xadrez através da Internet com o Linux

Salvar automaticamente no Vim

LPairs, O jogo da memória

Como atualizar seu Ubuntu para 14.10 ou superior

Leitura recomendada

Busca Reversa no Mongo Shell

Instalar MongoDB 4.4 no Debian 10 Buster

MongoDB Community Edition 4.2 no Debian 10 Buster

MongoDB - Habilitar autenticação por usuário (Access Control)

MongoDB - Erro "not authorized ... to execute command" [Resolvido]

  

Comentários
[1] Comentário enviado por mauricio123 em 24/08/2020 - 23:05h


O MongoDB é um banco de dados Relacional E-R ou Orientados a Objetos (OO)?

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[2] Comentário enviado por fabio em 25/08/2020 - 06:40h



O MongoDB é um banco de dados Relacional E-R ou Orientados a Objetos (OO)?



Na verdade nenhum dos dois. É um banco de dados orientado a documentos. É o conceito de banco de dados NO-SQL.

[3] Comentário enviado por mauricio123 em 25/08/2020 - 12:43h


Ok entendi. Não estudei sobre esse conceito de NO-SQL. Achei bem interessante. Mas então, qual é o banco de dados OO que você recomendaria?

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[4] Comentário enviado por fabio em 25/08/2020 - 18:38h

Nunca trabalhei com banco orientado a objetos, o Postgresql parece que tem suporte a isso. O tipo de banco de dados a escolher depende muito do tipo de aplicação que você irá projetar. Hoje em dia, para a maioria dos casos, NO-SQL tem sido a melhor escolha.

[5] Comentário enviado por mauricio123 em 25/08/2020 - 22:32h


OK. Entendi.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]



Contribuir com comentário