Visão geral
Neste guia, você pode aprender como usar a Biblioteca MongoDB PHP para adicionar documentos a uma coleção MongoDB realizando operações de inserção.
Uma operação de inserção insere um ou mais documentos em uma coleção MongoDB . Você pode executar uma operação de inserção usando os seguintes métodos:
MongoDB\Collection::insertOne()método para inserir um único documentoMongoDB\Collection::insertMany()método para inserir um ou mais documentos
Dados de amostra
Os exemplos neste guia utilizam a coleção do restaurants no banco de dados de dados do sample_restaurants a partir dos conjuntos de dados de amostra do Atlas. Para acessar essa coleção a partir do seu aplicação PHP , instancie um MongoDB\Client que se conecte a um Atlas cluster e atribua o seguinte valor à sua variável $collection :
$collection = $client->sample_restaurants->restaurants;
Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .
O campo _id
Em uma coleção MongoDB, cada documento deve conter um campo _id com um valor de campo único.
O MongoDB permite gerenciar este campo de duas maneiras:
Defina o campo
_idpara cada documento por conta própria, garantindo que cada valor seja único.Permita que o acionador gere automaticamente valores de
ObjectIdúnicos para cada campo de documento_id.
A menos que você possa garantir exclusividade, recomendamos deixar o driver gerar automaticamente os valores de _id .
Observação
Os valores duplicados de _id violam restrições de índice único , o que faz com que o driver retorne um erro MongoDB\Driver\Exception\BulkWriteException .
Para saber mais sobre o campo _id, consulte o guia Índices únicos no manual do MongoDB Server .
Para saber mais sobre a estrutura e as regras de documentos, consulte o guia Documentos no manual do MongoDB Server .
Inserir um documento
Para adicionar um único documento a uma coleção MongoDB, chame o método MongoDB\Collection::insertOne() e passe o documento que você deseja adicionar.
O exemplo a seguir insere um documento na coleção restaurants :
$result = $collection->insertOne(['name' => 'Mongo\'s Burgers']);
Insira vários documentos
Para adicionar vários documentos a uma collection do MongoDB , chame o método MongoDB\Collection::insertMany() e passe uma array que contenha a lista de documentos que você deseja adicionar.
O exemplo a seguir insere dois documentos na collection restaurants :
$restaurants = [ ['name' => 'Mongo\'s Burgers'], ['name' => 'Mongo\'s Pizza'], ]; $result = $collection->insertMany($restaurants);
Modificar comportamento de inserção
Você pode modificar o comportamento dos métodos MongoDB\Collection::insertOne() e MongoDB\Collection::insertMany() passando uma array que especifique valores de opção como um parâmetro. A tabela a seguir descreve algumas opções que você pode definir na array:
Campo | Descrição |
|---|---|
| If set to true, allows the write operation to opt out of
document-level validation.Defaults to false.Type: bool |
| Sets the write concern for the operation. Defaults to the write concern of the namespace. Type: MongoDB\Driver\WriteConcern |
| If set to true, the operation stops inserting documents when one insert
fails. If false, the operation continues to insert the remaining documents
when one insert fails. You cannot pass this option to the insertOne() method.Defaults to true.Type: bool |
| A comment to attach to the operation. For more information, see the insert command
fields guide in the
MongoDB Server manual. Type: any valid BSON type |
Exemplo
O código a seguir usa o método insertMany() para inserir três novos documentos em uma coleção. Como o campo bypassDocumentValidation está definido como true em uma array de opções, essa operação de inserção ignora a validação em nível de documento:
$docs = [ ['name' => 'Mongo\'s Burgers'], ['name' => 'Mongo\'s Pizza'], ['name' => 'Mongo\'s Tacos'], ]; $result = $collection->insertMany($docs, ['bypassDocumentValidation' => true]);
Informações adicionais
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: