O MongoDB é um banco de dados NoSQL de código aberto que oferece suporte para diferentes formas de dados. Uma de suas características mais notáveis é a capacidade de inserir múltiplos documentos de uma só vez. Isso pode ser especialmente útil quando você precisa preencher seu banco de dados com muitos registros de uma vez. Neste capítulo, vamos explorar como inserir múltiplos documentos no MongoDB.
Para começar, precisamos entender como os documentos são estruturados no MongoDB. Diferente dos bancos de dados relacionais, onde os dados são armazenados em tabelas, no MongoDB os dados são armazenados em coleções. Cada documento dentro de uma coleção é um objeto JSON, que pode conter vários pares de chave e valor.
Para inserir múltiplos documentos, você pode usar o método `insertMany()`. Este método aceita um array de objetos e insere todos esses objetos na coleção especificada. Vejamos um exemplo. Suponha que temos uma coleção chamada `users` e queremos inserir três novos usuários. Aqui está como você pode fazer isso:
```javascript db.users.insertMany([ { name: 'Alice', age: 25, email: 'alice@example.com' }, { name: 'Bob', age: 30, email: 'bob@example.com' }, { name: 'Charlie', age: 35, email: 'charlie@example.com' } ]) ```Depois de executar este comando, o MongoDB irá inserir os três documentos na coleção `users`. Se a operação for bem-sucedida, o MongoDB retornará um objeto que contém o status da operação e os `_id`s dos documentos inseridos.
É importante notar que o MongoDB gera automaticamente um `_id` para cada documento que você insere, a menos que você especifique um. O `_id` é um identificador único para cada documento, e o MongoDB garante que dentro de uma coleção, não podem existir dois documentos com o mesmo `_id`.
Se você tentar inserir múltiplos documentos com o mesmo `_id`, o MongoDB lançará um erro e interromperá a operação de inserção. Nenhum dos documentos será inserido. Por isso, é importante garantir que cada documento tenha um `_id` único.
O método `insertMany()` também aceita um segundo argumento opcional, que é um objeto de opções. Este objeto pode conter várias opções, como `ordered` e `writeConcern`. A opção `ordered` é um booleano que determina se o MongoDB deve inserir os documentos na ordem em que aparecem no array. Se `ordered` for `true` (o padrão), o MongoDB irá parar a operação de inserção assim que encontrar um erro (como um `_id` duplicado). Se `ordered` for `false`, o MongoDB tentará inserir todos os documentos, mesmo que encontre erros.
A opção `writeConcern` controla a garantia de escrita do MongoDB. Você pode especificar o número de instâncias que devem confirmar a operação de inserção antes que ela seja considerada completa. Por exemplo, se você tem um cluster de três instâncias do MongoDB, você pode definir `writeConcern` para `2` para garantir que pelo menos duas instâncias confirmem a operação.
Em resumo, a inserção de múltiplos documentos no MongoDB é uma tarefa simples, mas poderosa. Com o método `insertMany()`, você pode preencher rapidamente seu banco de dados com muitos registros. No entanto, é importante estar ciente das implicações de inserir documentos com o mesmo `_id` e de como as opções `ordered` e `writeConcern` podem afetar a operação de inserção.