Definición
MongoDB\Database::createCollection()Crea explícitamente una colección.
function createCollection( string $collectionName, array $options = [] ): void MongoDB crea colecciones implícitamente la primera vez que se hace referencia a la colección en un comando, como al insertar un documento en una nueva colección. También se puede crear explícitamente una colección con opciones específicas mediante
MongoDB\Database::createCollection()método, o utilizando db.createCollection() en la shell de MongoDB.La creación explícita de colecciones te permite crear colecciones limitadas, especificar criterios de validación de documentos o configurar tu motor de almacenamiento u opciones de indexación.
Parámetros
$collectionName: string- El nombre de la colección que se va a crear.
$options: arregloUna matriz que especifica las opciones deseadas.
Nota
No todas las opciones están disponibles en todas las versiones de MongoDB. Consulte la referencia del comando create en el manual de MongoDB para obtener información sobre compatibilidad.
NombreTipoDescripcióntapado
booleano
Para crear una colección limitada, especifique
true. Si especificatrue, también debe establecer un tamaño máximo en la opciónsize.cambiar imágenes previas y posteriores del flujo
Documento
Se utiliza para configurar la compatibilidad con imágenes previas y posteriores en los flujos de cambios. Consulte la documentación del comando create para obtener más información.
Esta opción está disponible desde MongoDB 6.0 y generará una excepción en el momento de ejecución si se especifica para una versión de servidor anterior.
Novedades en la versión 1.13.
clusteredIndex
Documento
Una especificación de índice agrupado. Consulta Collections agrupadas o la documentación del comando crear para más información.
Esta opción está disponible desde MongoDB 5.3 y dará lugar a una excepción en tiempo de ejecución si se especifica para una versión de servidor anterior.
Novedades en la versión 1.13.
intercalación
arreglo|objeto
Laintercalación permite a los usuarios especificar reglas específicas del idioma para la comparación de cadenas, como el uso de mayúsculas y minúsculas y tildes. Al especificar la intercalación, el
localecampo es obligatorio; todos los demás campos son opcionales. Para obtener descripciones de los campos, consulte el documento de intercalación.comment
mixto
Permite a los usuarios especificar un comentario arbitrario para ayudar a rastrear la operación a través del generador de perfiles de base de datos, la salidacurrentOp y los registros.
Esta opción está disponible desde MongoDB 4.4 y, si se especifica para una versión de servidor anterior, dará lugar a una excepción en tiempo de ejecución.
Novedades en la versión 1.13.
encryptedFields
Documento
Un documento que describe campos cifrados para queryable encryption. Si se omite, se consultará la opción
encryptedFieldsMapdentro de la opción del controladorautoEncryption. Consulta Cifrado de campo y consultabilidad en el manual de MongoDB para obtener más información.Esta opción está disponible desde MongoDB 7.0 y generará una excepción en el momento de ejecución si se especifica para una versión de servidor anterior.
Novedades en la versión 1.13.
expireAfterSeconds
entero
Se utiliza para borrar automáticamente documentos en colecciones de series de tiempo. Consulte la documentación del comando create para más información.
Esta opción está disponible desde MongoDB 5.0 y se producirá una excepción en tiempo de ejecución si se especifica para una versión anterior del servidor.
Nuevo en la versión 1.9.
indexOptionDefaults
arreglo|objeto
Permite a los usuarios especificar una configuración por defecto para los índices al crear una colección.
La opción
indexOptionDefaultsacepta un documentostorageEngine, el cual debe tener la siguiente forma:{ <storage-engine-name>: <options> } Las configuraciones del motor de almacenamiento especificadas al crear índices se validan y se registran en el oplog durante la replicación para admitir sets de réplicas con miembros que usan diferentes motores de almacenamiento.
máximo
entero
El número máximo de documentos permitidos en la colección con tamaño fijo. La opción
sizetiene prioridad sobre este límite. Si una colección con tamaño fijo alcanza el límitesizeantes de llegar al número máximo de documentos, MongoDB remueve los documentos antiguos. Si prefieres utilizar el límitemax, asegúrate de que el límitesize, que es necesario para una colección con tamaño fijo, sea suficiente para contener el número máximo de documentos.maxTimeMS
entero
El límite de tiempo acumulado en milisegundos para las operaciones de procesamiento en el cursor. MongoDB aborta la operación en el siguiente punto de interrupción..
pipeline
arreglo
Una matriz que consta de las etapas de la canalización de agregación, que se aplicarán a la colección o vista especificada por. Consulte la
viewOndocumentación del comando create para obtener más información.Novedades en la versión 1.13.
sesión
Sesión de cliente para asociar a la operación.
Nueva en la versión 1.3.
tamaño
entero
Especifique un tamaño máximo en bytes para una colección limitada. Una vez que una colección limitada alcanza su tamaño máximo, MongoDB elimina los documentos antiguos para liberar espacio para los nuevos. La opción
sizees obligatoria para las colecciones limitadas y se ignora para las demás.storageEngine
arreglo|objeto
Disponible solo para el motor de almacenamiento WiredTiger.
Permite a los usuarios especificar la configuración para el motor de almacenamiento por colección al crear una colección. El valor de la opción
storageEnginedebe tomar la siguiente forma:{ <storage-engine-name>: <options> } Las configuraciones del motor de almacenamiento especificadas al crear las colecciones se validan y registran en el oplog durante la replicación para admitir sets de réplicas con nodos que utilicen diferentes motores de almacenamiento.
Series temporales
arreglo|objeto
Un objeto que contiene opciones para crear colecciones de series de tiempo. Consulta la documentación del comando create para conocer las opciones admitidas.
Esta opción está disponible desde MongoDB 5.0 y se producirá una excepción en tiempo de ejecución si se especifica para una versión anterior del servidor.
Nuevo en la versión 1.9.
typeMap
arreglo
El mapa de tipos que se aplica a los cursores y que determina cómo se convierten los documentos BSON a valores PHP. El valor predeterminado es el mapa de tipos de la base de datos.
Esto se utilizará para el documento de resultado del comando devuelto.
validationAction
string
Determina si se debe mostrar
erroren documentos no válidos o solowarnsobre las infracciones, pero permite que se inserten documentos no válidos.IMPORTANTE: La validación de documentos solo se aplica a aquellos documentos según lo determinado por el
validationLevel.validationActionDescripción"error"Por defecto. Los documentos deben pasar la validación antes de que ocurra el guardado. De lo contrario, la operación de escritura falla.
"warn"No es necesario que los documentos pasen la validación. Si el documento no pasa la validación, la operación de guardar registra el fallo de validación.
validationLevel
string
Determina con qué rigor MongoDB aplica las reglas de validación a los documentos existentes durante una actualización.
validationLevelDescripción"off"No hay validación para inserciones o actualizaciones.
"strict"por defecto. Aplica reglas de validación a todas las inserciones y a todas las actualizaciones.
"moderate"Aplica reglas de validación a las inserciones y a las actualizaciones en documentos válidos existentes. No apliques reglas a las actualizaciones en documentos inválidos existentes.
validator
arreglo|objeto
Permite a los usuarios especificar reglas de validación o expresiones para la colección. Para obtener más información, consulte validación de documento en el manual de MongoDB.
La opción
validatortoma un arreglo que especifica las reglas o expresiones de validación. Puedes especificar las expresiones utilizando los mismos operadores que los operadores del query de MongoDB, con la excepción de$near,$nearSphere,$texty$where.La validación ocurre durante las actualizaciones e inserciones. Los documentos existentes no pasan por comprobaciones de validación hasta que se modifican.
No se puede especificar un validador para colecciones en las bases de datos
admin,localyconfig.No se puede especificar un validador para las colecciones de
system.*.Vista activada
string
El nombre de la colección de origen o vista a partir de la cual crear la vista.
El nombre no corresponde al espacio de nombres completo de la colección o vista (es decir, no incluye el nombre de la base de datos). Las vistas deben crearse en las mismas bases de datos que la colección o vista de origen.
Novedades en la versión 1.13.
writeConcern
nivel de confirmación de escritura (write concern) a utilizar para la operación. Se utiliza por defecto el nivel de confirmación de escritura (write concern) de la base de datos.
Errores/Excepciones
MongoDB\Exception\UnsupportedException si se utilizan opciones que no son compatibles con el servidor seleccionado (porcollation readConcernwriteConcernejemplo,,,).
MongoDB\Exception\InvalidArgumentException por errores relacionados con el análisis de parámetros u opciones.
MongoDB\Driver\Exception\RuntimeException para otros errores en el nivel de extensión (por ejemplo, errores de conexión).
Ejemplo
El siguiente ejemplo crea una colección users en la base de datos test con criterios de validación de documentos:
$db = (new MongoDB\Client)->test; $db->createCollection('users', [ 'validator' => [ 'username' => ['$type' => 'string'], 'email' => ['$regex' => '@mongodb\.com$'], ], ]);
Ver también
referencia del comando crear en el manual de MongoDB