Menu Docs
Página inicial do Docs
/ / /
Manual da Biblioteca PHP
/

Insira documentos

Nesta página

  • Visão geral
  • Dados de amostra
  • O campo _id
  • Inserir um documento
  • Insira vários documentos
  • Modificar comportamento de inserção
  • Exemplo
  • Informações adicionais
  • Documentação da API

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 documento

  • MongoDB\Collection::insertMany() método para inserir um ou mais documentos

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 .

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 .

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']);

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);

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

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]);

Para visualizar exemplos de código executáveis de inserção de documentos com a biblioteca PHP do MongoDB , consulte Gravar dados no MongoDB.

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

Update