MongoDB Matriz de objetos usando insert() com exemplo
โก Resumo Inteligente
MongoDB O exemplo "Array de objetos usando insert()" mostra como adicionar vรกrios documentos a uma coleรงรฃo em uma รบnica operaรงรฃo. Ele armazena um array de registros de funcionรกrios, incorpora arrays dentro de um documento e exibe os resultados de forma organizada usando a funรงรฃo print do JSON.

O que รฉ o mรฉtodo insert() em MongoDB?
O mรฉtodo insert() em MongoDB Adiciona um ou mais documentos a uma coleรงรฃo. Um documento รฉ um conjunto de pares campo-valor armazenados em BSON, uma forma binรกria de JSON. Quando vocรช passa um รบnico documento, `insert()` armazena esse registro; quando vocรช passa um array de documentos, ele os armazena todos em uma รบnica operaรงรฃo, o que รฉ mais rรกpido do que inseri-los um por um.
O mรฉtodo รฉ executado em uma coleรงรฃo especรญfica usando o padrรฃo db.collection.insert(). Se a coleรงรฃo de destino ainda nรฃo existir, MongoDB Ele รฉ criado automaticamente durante a primeira inserรงรฃo. Cada documento tambรฉm recebe um campo _id exclusivo, caso vocรช nรฃo forneรงa um, para que cada registro possa ser identificado posteriormente.
Embora insert() ainda funcione, versรตes mais recentes MongoDB As versรตes oferecem os mรฉtodos `insertOne()` e `insertMany()` como substitutos mais claros. Os exemplos abaixo usam `insert()` para adicionar uma matriz de documentos de funcionรกrios e, em seguida, exibem os resultados em um formato JSON legรญvel.
Adicionando uma matriz de documentos
O comando โinserirโ tambรฉm pode ser usado para inserir vรกrios documentos em uma coleรงรฃo ao mesmo tempo. O exemplo de cรณdigo abaixo pode ser usado para inserir vรกrios documentos de uma vez.
O exemplo a seguir mostra como isso pode ser feito,
Passo 1) Crie uma JavaScript variรกvel chamada myEmployee para armazenar a matriz de documentos
Passo 2) Adicione os documentos necessรกrios com o nome do campo e valores ร variรกvel
Passo 3) Use o comando insert para inserir a matriz de documentos na coleรงรฃo
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Se o comando for executado com sucesso, a seguinte saรญda serรก mostrada
A saรญda mostra que esses 3 documentos foram adicionados ร coleรงรฃo.
Como inserir uma matriz dentro de um documento
Alรฉm de inserir uma sรฉrie de documentos separados, MongoDB Permite armazenar um array como um campo dentro de um รบnico documento. Isso รฉ รบtil quando um registro contรฉm naturalmente uma lista de valores, como um funcionรกrio com vรกrias habilidades ou um aluno matriculado em vรกrios cursos. MongoDB Utiliza um modelo de documento flexรญvel, onde o array reside diretamente dentro do objeto, em vez de em uma tabela separada, o que mantรฉm os dados relacionados juntos.
O exemplo a seguir insere um documento de funcionรกrio que contรฉm um campo de matriz chamado Habilidades:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
As partes deste documento funcionam da seguinte maneira:
- ID do funcionรกrio e Nome do empregado sรฃo pares comuns de campo e valor.
- Competรชncias ร um campo de matriz que armazena trรชs valores de string entre colchetes.
- Todo o documento, incluindo a matriz incorporada, รฉ armazenado em uma รบnica operaรงรฃo de inserรงรฃo.
Apรณs adicionar o registro, vocรช pode confirmar a matriz incorporada com uma consulta de busca que imprime o resultado em JSON:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
O resultado mostra a matriz Skills aninhada dentro do documento do funcionรกrio. LaterVocรช pode adicionar novos valores ร matriz com o operador `$push` ou ler um รบnico elemento pela sua posiรงรฃo de รญndice. Armazenar valores conectados dessa forma mantรฉm cada documento independente, reduz a necessidade de junรงรตes entre coleรงรตes e torna os dados mais fรกceis de ler e manter.
insert() vs insertOne() vs insertMany()
MongoDB Oferece trรชs mรฉtodos relacionados para adicionar dados. A tabela abaixo os compara para que vocรช possa escolher o mais adequado:
| Forma | Propรณsito | Exemplo |
|---|---|---|
| inserir() | Mรฉtodo legado que adiciona um รบnico documento ou uma matriz de documentos. Ainda funciona, mas estรก obsoleto em drivers mais recentes. | db.Employee.insert(myEmployee) |
| inserirUm() | Adiciona exatamente um documento e retorna o _id inserido. Preferencial para registros รบnicos. | db.Employee.insertOne({ โฆ }) |
| inserirMuitos() | Adiciona um array de documentos em uma รบnica chamada e retorna todos os _ids inseridos. Preferencial para inserรงรตes em massa. | db.Employee.insertMany([ { โฆ }, { โฆ } ]) |
Para novos projetos, use insertOne() e insertMany(), pois eles fornecem uma intenรงรฃo mais clara e relatรณrios de erros mais precisos. O mรฉtodo insert() permanece disponรญvel principalmente para manter a compatibilidade com versรตes anteriores de tutoriais e scripts.
Imprimindo no formato JSON
JSON รฉ um formato chamado JavaNotaรงรฃo de objeto de script, e รฉ apenas uma forma de armazenar informaรงรตes de maneira organizada e fรกcil de ler. Em nossos exemplos adicionais, usaremos a funcionalidade de impressรฃo JSON para ver a saรญda em um formato melhor.
Vejamos um exemplo de impressรฃo no formato JSON
db.Employee.find().forEach(printjson)
Code Explicaรงรฃo:
- A primeira alteraรงรฃo consiste em adicionar a funรงรฃo `forEach()` ร funรงรฃo `find()`. Isso garante que cada documento da coleรงรฃo seja percorrido explicitamente. Dessa forma, vocรช tem mais controle sobre o que pode fazer com cada um dos documentos da coleรงรฃo.
- A segunda mudanรงa รฉ colocar o comando printjson na instruรงรฃo forEach. Isso farรก com que cada documento da coleรงรฃo seja exibido no formato JSON.
Se o comando for executado com sucesso, a seguinte saรญda serรก mostrada
Saรญda:
A saรญda mostra claramente que todos os documentos sรฃo impressos no estilo JSON.


