Overview
En esta guía, puede aprender a utilizar bases de datos y colecciones de MongoDB con la biblioteca PHP de MongoDB.
MongoDB organiza los datos en una jerarquía de los siguientes niveles:
Bases de datos: Estructuras de datos de nivel superior en una implementación de MongoDB que almacenan colecciones.
Colecciones: Grupos de documentos de MongoDB. Son análogos a las tablas en bases de datos relacionales.
Documentos: Unidades que almacenan datos literales como cadenas, números, fechas y otros documentos incrustados. Para obtener más información sobre los tipos y la estructura de los campos de documento, consulte Guía dedocumentos en el manual de MongoDB Server.
Acceder a una base de datos
Acceda a una base de datos pasando el nombre de la base de datos al MongoDB\Client::getDatabase()
.
El siguiente ejemplo accede a una base de datos llamada test_database:
$db = $client->getDatabase('test_database');
Como alternativa, puede invocar implícitamente el método mágico MongoDB\Client::__get() en un objeto cliente. Este método permite seleccionar una base de datos mediante la sintaxis para acceder a una propiedad de clase. El siguiente ejemplo utiliza esta sintaxis abreviada para acceder a la base de datos test_database:
$db = $client->test_database;
Tip
Para obtener más información sobre __get() y los métodos mágicos de PHP, consulte los siguientes recursos:
MongoDB\Client::__get()en la documentación de la API de la bibliotecaMétodos mágicos en el manual de PHP
Acceder a una colección
Acceda a una colección mediante cualquiera de los siguientes métodos:
MongoDB\Client::getCollection(): Pasa los nombres de la base de datos y la colección como parámetrosMongoDB\Database::getCollection():Pase el nombre de la colección como parámetro
El siguiente ejemplo accede a una colección llamada test_collection utilizando el método MongoDB\Database::getCollection():
$collection = $client->test_database->getCollection('test_collection');
Tip
Si el nombre de la colección proporcionado aún no existe en la base de datos, MongoDB crea implícitamente la colección cuando se insertan datos en ella por primera vez.
Como alternativa, puede invocar implícitamente el método mágico MongoDB\Database::__get() en un objeto de base de datos. Este método permite seleccionar una colección mediante la sintaxis para acceder a una propiedad de clase. El siguiente ejemplo utiliza esta sintaxis abreviada para acceder a la colección test_collection:
$collection = $db->test_collection;
Para obtener más información, consulte la MongoDB\Database::__get() documentación de la API.
Crear una colección
Pasa un nombre de colección al método MongoDB\Database::createCollection() para crear explícitamente una colección en una base de datos MongoDB.
El siguiente ejemplo crea una colección llamada example_collection:
$client->test_database->createCollection('example_collection');
Puede especificar opciones de colección, como el tamaño máximo y las reglas de validación de documentos, pasándolas como una matriz al createCollection() método. Para obtener una lista completa de parámetros opcionales, consulte la documentación de la API.
Obtén una lista de colecciones
Puedes hacer un query para una lista de colecciones en una base de datos mediante el método MongoDB\Database::listCollections(). El método devuelve un cursor que contiene todas las colecciones en la base de datos y sus metadatos asociados.
El siguiente ejemplo llama al listCollections() método e itera sobre el iterador devuelto para imprimir las colecciones de los ejemplos Acceder a una colección y Crear una colección:
foreach ($client->test_database->listCollections() as $collectionInfo) { print_r($collectionInfo) . PHP_EOL; }
MongoDB\Model\CollectionInfo Object ( [name] => example_collection [type] => collection ... ) MongoDB\Model\CollectionInfo Object ( [name] => test_collection [type] => collection ... )
Borrar una colección
Puedes borrar una colección de la base de datos utilizando el método MongoDB\Database::dropCollection().
El siguiente ejemplo elimina la colección test_collection:
$client->test_database->dropCollection('test_collection');
Advertencia
Eliminar una colección borra todos los datos de la colección
Borrar una colección de la base de datos borra permanentemente todos los documentos y todos los índices dentro de esa colección.
Elimine una colección solo si ya no necesita los datos que contiene.
Borrar una base de datos
Puede eliminar una base de datos utilizando el método MongoDB\Client::dropDatabase().
El siguiente ejemplo borra la base de datos test_database:
$client->dropDatabase('test_database');
Advertencia
Borrar una base de datos borra todos los datos de la base de datos.
Al eliminar una base de datos de forma permanente se elimina la base de datos y todas las colecciones y documentos dentro de esa base de datos.
Elimine una base de datos solo si ya no necesita sus datos.
Configurar operaciones de lectura y escritura
Puede controlar cómo se ejecutan las operaciones de lectura y escritura en conjuntos de réplicas especificando una preferencia de lectura, una preocupación de lectura o una preocupación de escritura.
De forma predeterminada, las bases de datos heredan la configuración de lectura y escritura de la instancia MongoDB\Client. Las colecciones heredan esta configuración de la instancia MongoDB\Client o MongoDB\Database en la que se llama al método getCollection(). Puede cambiar esta configuración pasando una matriz de opciones a los métodos MongoDB\Client::getDatabase(), MongoDB\Client::getCollection() o MongoDB\Database::getCollection().
Para obtener más información sobre cómo configurar una preferencia de lectura, una preocupación de lectura y una preocupación de escritura, consulte la guía Configurar operaciones CRUD.
Documentación de la API
Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: