Docs Menu
Docs Home
/ /

Insertar documentos

En esta guía, puede aprender a utilizar la biblioteca PHP de MongoDB para agregar documentos a una colección de MongoDB realizando operaciones de inserción.

Una operación de inserción inserta uno o más documentos en una colección de MongoDB. Puedes realizar una operación de inserción mediante los siguientes métodos:

  • MongoDB\Collection::insertOne() método para insertar un solo documento

  • MongoDB\Collection::insertMany() método para insertar uno o más documentos

Los ejemplos de esta guía utilizan la colección restaurants en la base de datos sample_restaurants de la Conjuntos de datos de muestra de Atlas. Para acceder a esta colección desde su aplicación PHP, cree MongoDB\Client una instancia de que se conecte a un clúster de Atlas y asigne el siguiente valor a su $collection variable:

$collection = $client->sample_restaurants->restaurants;

Para aprender cómo crear una implementación gratuita de MongoDB y cargar los conjuntos de datos de muestra, consulte la guía de introducción a MongoDB.

En una colección de MongoDB, cada documento debe contener un campo _id con un valor de campo único.

MongoDB permite gestionar este campo de dos formas:

  • Configure usted mismo el campo _id para cada documento, asegurándose de que cada valor sea único.

  • Deje que el controlador genere automáticamente valores ObjectId únicos para cada campo _id del documento.

A menos que pueda garantizar la singularidad, recomendamos dejar que el controlador genere automáticamente valores _id.

Nota

Los valores duplicados _id violan las restricciones de índice único, lo que hace que el controlador devuelva un error MongoDB\Driver\Exception\BulkWriteException.

Para obtener más información sobre el _id campo, consulte la guía Índices únicos en el manual de MongoDB Server.

Para obtener más información sobre la estructura y las reglas de los documentos, consulte la guía Documentos en el manual del servidor MongoDB.

Para añadir un único documento a una colección de MongoDB, llama al método MongoDB\Collection::insertOne() y pasa el documento que quieras añadir.

El siguiente ejemplo inserta un documento en la colección restaurants:

$result = $collection->insertOne(['name' => 'Mongo\'s Burgers']);

Para agregar varios documentos a una colección MongoDB, llame al método MongoDB\Collection::insertMany() y pase una matriz que contenga la lista de documentos que desea agregar.

El siguiente ejemplo inserta dos documentos en la colección restaurants:

$restaurants = [
['name' => 'Mongo\'s Burgers'],
['name' => 'Mongo\'s Pizza'],
];
$result = $collection->insertMany($restaurants);

Puede modificar el comportamiento de los métodos MongoDB\Collection::insertOne() y MongoDB\Collection::insertMany() pasando una matriz que especifique valores de opción como parámetro. La siguiente tabla describe algunas opciones que puede configurar en la matriz:

Campo
Descripción

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

El siguiente código utiliza el método insertMany() para insertar tres documentos nuevos en una colección. Dado que el campo bypassDocumentValidation está establecido en true en una matriz de opciones, esta operación de inserción omite la validación a nivel de documento:

$docs = [
['name' => 'Mongo\'s Burgers'],
['name' => 'Mongo\'s Pizza'],
['name' => 'Mongo\'s Tacos'],
];
$result = $collection->insertMany($docs, ['bypassDocumentValidation' => true]);

Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API:

  • MongoDB\Collection::insertOne()

  • MongoDB\Collection::insertMany()

Volver

Bases de datos y colecciones

En esta página