Docs Menu
Docs Home
/ /

Bases de datos y colecciones

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.

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 biblioteca

  • Métodos mágicos en el manual de PHP

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ámetros

  • MongoDB\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.

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.

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

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.

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.

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.

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

Volver

Solución de problemas de conexión

En esta página