Insira documentos
Nesta página
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
_id
para 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 |
---|---|
bypassDocumentValidation | If set to true , allows the write operation to opt out of
document-level validation.Defaults to false .Type: bool |
writeConcern | Sets the write concern for the operation. Defaults to the write concern of the namespace. Type: MongoDB\Driver\WriteConcern |
ordered | 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 |
comment | 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
Para visualizar exemplos de código executáveis de inserção de documentos com a biblioteca PHP do MongoDB , consulte Gravar dados no MongoDB.
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: