MongoDB Insira vários documentos

MongoDB Insira vários documentos
Neste artigo, aprenderemos a inserir vários documentos de uma só vez em uma determinada coleção usando os comandos nativos do MongoDB Shell.

Método MongoDB InsertMany ()

Como o nome sugere, o método InsertMany () nos permite especificar um conjunto de documentos e inseri -los de uma só vez em uma determinada coleção.

A seguir, mostra a sintaxe do método insertMany ():

dB.coleção.InsertMany (
[,,…],

WRITECONCERN: ,
ordenado:

)

O parâmetro é o seguinte:

  1. Documento - Especifica uma variedade de documentos para inserir em uma determinada coleção.
  2. WRITECONCERN - Define os parâmetros de preocupação de gravação que substituem a preocupação de gravação padrão. Uma preocupação de gravação é usada para definir o nível de reconhecimento solicitado do MongoDB para Write Ops.
  3. Ordenado -define se a instância do MongoDB deve executar uma inserção ordenada ou não ordenada.

O método deve retornar uma declaração de reconhecimento que inclui uma declaração booleana e o número de documentos inseridos.

Vamos dar uma olhada em um exemplo prático.

Definir uma coleção

Vamos começar criando uma coleção simples, onde podemos inserir dados de amostra. Faça login no shell do MongoDB e execute o comando:

$ mongosh
dB.CreateCollection ("funcionários")

O comando acima deve criar uma nova coleção chamada funcionários.

Insira vários documentos com o campo _id

MongoDB é um banco de dados muito flexível. Ele nos permite inserir documentos sem especificar o campo _id. Por padrão, o MongoDB gerará um identificador exclusivo para cada documento inserido na coleção

O exemplo abaixo mostra como usar o método insertMany () para inserir vários documentos sem o campo _id.

dB.funcionários.InsertMany ([
Nome: "Ryan", Departamento: "Desenvolvimento de Jogos", Salário: 120000,
Nome: "David", Departamento: "Desenvolvimento de back -end", Salário: 108000,
Nome: "Rachael", Departamento: "Desenvolvimento completo da pilha", salário: 110000,
Nome: "James", Departamento: "Desenvolvimento DevOps", Salário: 110000,
Nome: "Peter", Departamento: "Desenvolvimento de Jogos", Salário: 123000,
]))

Se executarmos a consulta acima, devemos obter uma saída como mostrado:


"Reconhecido": verdadeiro,
"inserdids": [
ObjectId ("632BD2F28B1603030EBD4FAD6"),
ObjectId ("632BD2F28B1603030EBD4FAD7"),
ObjectId ("632BD2F28B1603030EBD4FAD8"),
ObjectId ("632BD2F28B1603030EBD4FAD9"),
ObjectId ("632BD2F28B1603030EBD4FADA")
]

O acima mostra uma mensagem de reconhecimento e os valores de ID gerados automaticamente.

Podemos localizar os documentos inseridos como:

dB.funcionários.encontrar()

O comando acima deve retornar os documentos inseridos como mostrado:


"_id": objectId ("632BD2F28B1603030EBD4FAD6"),
"Nome": "Ryan",
"Departamento": "Desenvolvimento de Jogos",
"Salário": 120000.0


"_id": objectId ("632bd2f28b1603030eebd4fad7"),
"Nome": "David",
"Departamento": "Desenvolvimento de back -end",
"Salário": 108000.0


"_id": objectId ("632BD2F28B1603030EBD4FAD8"),
"Nome": "Rachael",
"Departamento": "Desenvolvimento de pilha completa",
"Salário": 110000.0


"_id": objectId ("632BD2F28B1603030EBD4FAD9"),
"Nome": "James",
"Departamento": "Desenvolvimento de DevOps",
"Salário": 110000.0

Insira vários documentos com o campo _id

Se não desejarmos que o MongoDB gerasse um valor _ID, podemos especificar explicitamente os valores para a coluna _id, como mostrado no exemplo abaixo:

dB.funcionários.InsertMany ([
_id: 1, nome: "ryan", departamento: "desenvolvimento de jogos", salário: 120000,
_id: 2, nome: "David", departamento: "Desenvolvimento de back -end", salário: 108000,
_id: 3, nome: "Rachael", departamento: "Desenvolvimento de pilha completa", salário: 110000,
_id: 4, nome: "James", Departamento: "Desenvolvimento DevOps", Salário: 110000,
_id: 5, nome: "Peter", departamento: "Desenvolvimento de jogos", salário: 123000,
]))

No exemplo acima, especificamos explicitamente os valores da coluna _id para cada documento inserido na coleção.

A consulta acima deve retornar:


"Reconhecido": verdadeiro,
"inserdids": [
1.0,
2.0,
3.0,
4.0,
5.0
]

Inserção não ordenada

Também podemos executar uma inserção não ordenada definindo o parâmetro ordenado como false, como mostrado abaixo:

dB.funcionários.InsertMany ([
_id: 1, nome: "ryan", departamento: "desenvolvimento de jogos", salário: 120000,
_id: 2, nome: "David", departamento: "Desenvolvimento de back -end", salário: 108000,
_id: 3, nome: "Rachael", departamento: "Desenvolvimento de pilha completa", salário: 110000,
_id: 4, nome: "James", Departamento: "Desenvolvimento DevOps", Salário: 110000,
_id: 5, nome: "Peter", departamento: "Desenvolvimento de jogos", salário: 123000,
], ordenado: false)

Isso é útil ao trabalhar com documentos duplicados.

Conclusão

Neste post, abordamos os fundamentos de trabalhar com o método MongoDB InsertMany () para adicionar vários documentos a uma determinada coleção em um único comando.