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
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]
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.
Mensagem
[quote]
O MongoDB é um banco de dados Relacional E-R ou Orientados a Objetos (OO)?
[/quote]
Na verdade nenhum dos dois. É um banco de dados orientado a documentos. É o conceito de banco de dados NO-SQL.
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]
Mensagem
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]
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.
Mensagem
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.
Mensagem
OK. Entendi.
___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]
Contribuir com comentário
Enviar