El comando create crea una colección para stores existente o una Ver una colección en la configuración de almacenamiento de la instancia de base de datos federada.
El comodín "*" se puede utilizar con el comando create de dos maneras:
Como nombre de la colección para crear dinámicamente colecciones que se asignan a archivos y carpetas en el almacén de instancias de base de datos federada
storesespecificado.En el parámetro
pathpara crear una colección que se asigne a múltiples archivos y carpetas en la ruta de archivo especificada en el almacén de instancias de base de datos federadastores.
Haga clic en la pestaña para obtener más información sobre cómo crear una colección o una vista.
Esta pestaña contiene la sintaxis y los parámetros para crear una colección. Elige la pestaña para tu tienda de instancias federadas de base de datos para obtener más información sobre la sintaxis y los parámetros de esa tienda de instancias federadas de base de datos.
Esta pestaña contiene la sintaxis y los parámetros para crear una colección para Almacén de instancias de base de datos federadaS.3
Esta pestaña contiene la sintaxis y los parámetros para crear una colección para el almacén de instancias de base de datos federada de Azure.
Esta pestaña contiene la sintaxis y los parámetros para crear una colección para el almacén de instancias de base de datos federada de Google Cloud.
Esta pestaña contiene la sintaxis y los parámetros para crear una colección para el almacén de instancias de base de datos federada.
Esta pestaña contiene la sintaxis y los parámetros para crear una colección para un almacén de instancias de base de datos federada HTTP.
Esta pestaña contiene la sintaxis y los parámetros para crear una colección para un almacén de instancia federada de base de datos de Online Archive.
Esta pestaña contiene la sintaxis y los parámetros para crear una vista para una colección de origen o una colección que usted especifique a través de una declaración SQL dentro de la canalización.
Esta pestaña describe la sintaxis y los parámetros para crear una vista estándar que ejecuta una canalización de agregación en otra colección.
Esta pestaña describe la sintaxis y los parámetros para crear una vista SQL utilizando el Etapa$sql.
Sintaxis
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>"|"*", "dataSources" : [{ "storeName" : "<store-name>", "database" : "<atlas-database-name>", "collection" : "<atlas-collection-name>" | "collectionRegex": "<regex-pattern>" }]})
db.runCommand({ "create" : "<collection-name>", "dataSources" : [{ "storeName" : "<store-name>", "allowInsecure" : true|false, "urls" : [ "<url>" ], "defaultFormat" : "<file-extension>" }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "datasetName" : "<online-archive-dataset-name>", "datasetPrefix": "<prefix-name>", "trimLevel" : <trim-number>, "maxDatasets": <maximum-number-of-datasets> }]})
db.runCommand({ "create" : "<view-name>", "viewOn" :" <collection-name>", "pipeline" : ["<stage1>","<stage2>",...] })
db.runCommand({ "create" : "<view-name>", "pipeline" : ["$sql": {"statement": "<SQL-statement>", "excludeNamespaces": true | false ]} })
Parámetros
Parameter | Tipo | Descripción | Necesidad |
|---|---|---|---|
| string | El nombre de la colección a la que Data Federation asigna los datos contenidos en el almacén de la instancia federada de base de datos o el comodín Puede generar nombres de colecciones dinámicamente a partir de rutas de archivo especificando | Requerido |
| Objeto | Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz | Requerido |
| string | Nombre de un almacén de instancias de base de datos federada que se asignará a la colección. El valor debe coincidir con el | Requerido |
| string | Ruta de acceso a los archivos y carpetas. Especifique | Requerido |
| string | Formato predeterminado de la Federación de Datos si encuentra un archivo sin extensión al consultar el almacén de instancias de la base de datos federada. Los siguientes valores son válidos:
Si se omite, Data Federation intenta detectar el tipo de archivo procesando algunos bytes del archivo. | Opcional |
| booleano | Marca que especifica si se deben omitir los atributos (pares clave-valor) que Atlas Data Federation añade a la colección. Puede especificar uno de los siguientes valores:
Si se omite, el valor predeterminado es | Opcional |
Parameter | Tipo | Descripción | Necesidad |
|---|---|---|---|
| string | El nombre de la colección a la que Data Federation asigna los datos contenidos en el almacén de la instancia federada de base de datos o el comodín Puede generar nombres de colecciones dinámicamente a partir de rutas de archivo especificando | Requerido |
| Objeto | Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz | Requerido |
| string | Nombre de un almacén de instancias de base de datos federada que se asignará a la colección. El valor debe coincidir con el | Requerido |
| string | Ruta de acceso a los archivos y carpetas. Especifique | Requerido |
| string | Formato predeterminado de la Federación de Datos si encuentra un archivo sin extensión al consultar el almacén de instancias de la base de datos federada. Los siguientes valores son válidos:
Si se omite, Data Federation intenta detectar el tipo de archivo procesando algunos bytes del archivo. | Opcional |
| booleano | Marca que especifica si se deben omitir los atributos (pares clave-valor) que Atlas Data Federation añade a la colección. Puede especificar uno de los siguientes valores:
Si se omite, el valor predeterminado es | Opcional |
Parameter | Tipo | Descripción | Necesidad |
|---|---|---|---|
| string | El nombre de la colección a la que Data Federation asigna los datos contenidos en el almacén de la instancia federada de base de datos o el comodín Puede generar nombres de colecciones dinámicamente a partir de rutas de archivo especificando | Requerido |
| Objeto | Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz | Requerido |
| string | Nombre de un almacén de instancias de base de datos federada que se asignará a la colección. El valor debe coincidir con el | Requerido |
| string | Ruta de acceso a los archivos y carpetas. Especifique | Requerido |
| string | Formato predeterminado de la Federación de Datos si encuentra un archivo sin extensión al consultar el almacén de instancias de la base de datos federada. Los siguientes valores son válidos:
Si se omite, Data Federation intenta detectar el tipo de archivo procesando algunos bytes del archivo. | Opcional |
| booleano | Marca que especifica si se deben omitir los atributos (pares clave-valor) que Atlas Data Federation añade a la colección. Puede especificar uno de los siguientes valores:
Si se omite, el valor predeterminado es | Opcional |
Parameter | Tipo | Descripción | Necesidad |
|---|---|---|---|
| string | El nombre de la colección a la que Data Federation asigna los datos contenidos en el almacén de la instancia federada de base de datos o el comodín Puede generar nombres de colección dinámicamente especificando Para las bases de datos generadas dinámicamente, puede generar colecciones comodín especificando
Para las colecciones comodín ( | Requerido |
| Objeto | Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz | Requerido |
| string | Nombre de un almacén de instancias de base de datos federada que se asignará a la colección. El valor debe coincidir con el | Requerido |
| string | Nombre de la base de datos que contiene la colección en el clúster Atlas. Debe omitir este parámetro para generar colecciones con comodín ( | Condicional |
| string | Nombre de la colección en la base de datos Atlas. Para crear una colección con comodín ( | Condicional |
| string | Patrón de expresiones regulares para crear la colección de comodines Para utilizar patrones de expresiones regulares para nombres de colecciones comodín ( | Opcional |
Parameter | Tipo | Descripción | Necesidad |
|---|---|---|---|
| string | El nombre de la colección a la que Atlas Data Federation asigna los datos contenidos en el almacén de instancias de la base de datos federada. No se pueden generar nombres de colección dinámicamente especificando | Requerido |
| Objeto | Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz | Requerido |
| string | Nombre de un almacén de instancias de base de datos federada que se asignará a la colección. El valor debe coincidir con el | Requerido |
| booleano | Valida el esquema en las URLespecificadas. El valor puede ser uno de los siguientes:
Si es verdadero, Atlas Data Federation:
ADVERTENCIA: Si configura esta opción Si se omite, es por defecto | Opcional |
| matriz de cadenas o matriz vacía | Las URLde los archivos de datos de acceso público. No se pueden especificar URLque requieran autenticación. Atlas Data Federation crea una partición para cada URL. Si se deja vacío o se omite, Atlas Data Federation utiliza las URLdel almacén especificado en el | Requerido |
| string | Formato predeterminado de la Federación de Datos si encuentra un archivo sin extensión al consultar el almacén de instancias de la base de datos federada. Los siguientes valores son válidos:
Si se omite, Data Federation intenta detectar el tipo de archivo procesando algunos bytes del archivo. Si se incluye, el formato especificado solo se aplica a las URL | Opcional |
Parameter | Tipo | Descripción | Necesidad | |
|---|---|---|---|---|
| string | El nombre de la colección a la que Atlas Data Federation asigna los datos contenidos en el almacén de instancias de la base de datos federada. Para generar dinámicamente nombres de colección, debe hacer lo siguiente:
| Requerido | |
| Objeto | Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz Puede especificar varios | Requerido | |
| string | Nombre de un almacén de instancias de base de datos federada que se asignará a la colección. El valor debe coincidir con el | Requerido | |
| string | Nombre del conjunto de datos del archivo en línea que se asignará a la colección. El archivo en línea No se puede especificar | Condicional | |
| string | Obligatorio solo para colecciones con comodines. Opcional para colecciones sin comodines. Prefijo del nombre del conjunto de datos para que coincida con los nombres de conjuntos de datos del archivo en línea. Si especifica este parámetro para colecciones de comodines, Atlas Data Federation asigna colecciones solo a los nombres de conjuntos de datos cuyo prefijo coincida con el Si especifica este parámetro para colecciones sin comodines, Atlas Data Federation asigna el conjunto de datos más reciente (de la instantánea capturada más recientemente) a la colección. Debe omitir | Condicional | |
| Int | Solo para colecciones comodín. Número máximo de conjuntos de datos a partir de los cuales se generarán colecciones dinámicamente para la fuente de datos. El valor debe ser mayor que | Opcional | |
| Int | Solo para colecciones comodín. Número de caracteres que se deben recortar a la izquierda del nombre del conjunto de datos antes de asignar los campos restantes a un nombre de colección con comodín. El valor debe ser mayor que Puede configurar esta configuración únicamente para colecciones de comodines. | Opcional |
Parameter | Tipo | Descripción | Necesidad |
|---|---|---|---|
| string | El nombre de la vista. El nombre de una vista debe ser exclusivo. No puede ser igual al nombre de una colección ni al de ninguna otra vista en la misma base de datos. | Requerido |
| string | El nombre de la colección de origen en la que se creará la vista. | Requerido |
| conjunto de etapas | La matriz de etapas de la canalización de agregación que se utilizará para crear la vista. La canalización de definición de vista no puede incluir las etapas $out o $merge, incluso dentro de etapas de canalización anidadas como $lookup o $facet. | Requerido |
Salida
El comando devuelve el siguiente resultado si se ejecuta correctamente. Puede verificar los resultados ejecutando los comandos en "Verificar recopilación". Si falla, consulte la sección "Solucionar errores" a continuación para obtener soluciones recomendadas.
{ ok: 1 }
Ejemplos
Los siguientes ejemplos utilizan los datos de muestra airbnb en una tienda AWS S3 con las siguientes configuraciones:
Nombre de la tienda |
|
Región |
|
Cubo |
|
Prefix |
|
Delimiter |
|
Conjunto de datos de muestra |
|
Los siguientes ejemplos utilizan los datos de muestra airbnb en un contenedor de Azure Blob Storage con la siguiente configuración:
Nombre de la tienda |
|
Prefix |
|
Delimiter |
|
Conjunto de datos de muestra |
|
Los siguientes ejemplos utilizan los datos de muestra airbnb en una tienda de Google Cloud con la siguiente configuración:
Nombre de la tienda |
|
Región |
|
Cubo |
|
Prefix |
|
Delimiter |
|
Conjunto de datos de muestra |
|
Los siguientes ejemplos utilizan la colección sample_airbnb.listingsAndReviews del conjunto de datos de muestra en el clúster Atlas con las siguientes configuraciones:
Nombre de la tienda |
|
Conjunto de datos de muestra |
|
Revise Cargar datos de muestra en su clúster Atlas para cargar el conjunto de datos de muestra en su clúster Atlas.
Los siguientes ejemplos utilizan las siguientes URL:
https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.jsonhttps://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json
Los siguientes ejemplos utilizan un archivo en línea con la siguiente configuración:
Nombre de la tienda |
|
Nombre del archivo en línea |
|
Ejemplo básico
El siguiente comando crea una colección llamada airbnb en la base de datos sampleDB en la configuración de almacenamiento.
La airbnb colección se asigna al airbnb conjunto de datos de muestra en la json carpeta del almacén S3 egS3Storellamado.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "airbnb", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb", "defaultFormat" : ".json" }] }] }] } }
La airbnb colección se asigna al airbnb conjunto de datos de muestra en la sample carpeta del almacén de Azure egAzureStore denominado.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAzureStore", "path" : "/sample/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
airbnb
La colección airbnb se asigna al conjunto de datos de muestra airbnb en la carpeta json en la tienda de Google Cloud llamada egGCStore.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egGCStore", "provider" : "gcs", "region" : "us-central1", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "airbnb", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/airbnb", "defaultFormat" : ".json" }] }] }] } }
La colección airbnb se asigna a la colección de muestra listingsAndReviews en la base de datos sample_airbnb del clúster Atlas.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReviews" }]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
airbnb
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "airbnb", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReview" }] }] }] } }
La airbnb colección incluye una partición para cada URL de la colección. El allowInsecure indicador no está definido y su valor predeterminado false es.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "http-store", "urls": ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json","https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json"], "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
airbnb
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "http-store", "provider" : "http", "urls" : [ "https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json", "https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json" ], "defaultFormat" : ".json" } ], "databases" : [ { "name" : "sampleDb", "collections" : [ { "name" : "airbnb", "dataSources" : [ { "storeName" : "http-store", "defaultFormat" : ".json", "urls" : [ "https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json", "https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json" ] } ] } ] } ] } }
La colección airbnb se asigna a los conjuntos de datos del archivo en línea en la canalización sample_airbnb.listingsAndReviews.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "adlStore", "datasetName" : "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews" }]})
{ "ok" : 1 }
Ejemplos de uso de comodines
Estos ejemplos muestran cómo se puede especificar el comodín "*" con el comando create.
El siguiente ejemplo utiliza el comando create para crear colecciones dinámicamente.
El siguiente ejemplo utiliza el comando create para crear dinámicamente colecciones para los archivos en la ruta /json/ del almacén de instancias de base de datos federada egS3Store. Utiliza la función collectionName() para asignar nombres a las colecciones según los nombres de archivo de la ruta especificada.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "*", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/{collectionName()}" }] }] }] } }
El siguiente ejemplo utiliza el comando create para crear una colección llamada egCollection que se asigna a un almacén de Atlas Data Federation llamado egS3Store. El egS3Store contiene el conjunto de datos de muestra, airbnb, en una carpeta llamada json.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/*"}]}})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
egCollection
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sample", "collections" : [{ "name" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/*" }] }] }] } }
Los siguientes ejemplos muestran cómo especificar un comodín "*" con el comando create.
El siguiente ejemplo utiliza el comando create para crear dinámicamente colecciones para los archivos en la ruta /sample/ del almacén de instancias de base de datos federada egAzureStore. Utiliza la función collectionName() para asignar nombres a las colecciones según los nombres de archivo de la ruta especificada.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
airbnb
El siguiente ejemplo utiliza el comando create para crear una colección llamada egCollection que se asigna a un almacén de Atlas Data Federation llamado egAzureStore. El egAzureStore contiene el conjunto de datos de muestra, airbnb, en una carpeta llamada sample.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/sample/*"}]}})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
egCollection
Estos ejemplos muestran cómo se puede especificar el comodín "*" con el comando create.
El siguiente ejemplo utiliza el comando create para crear colecciones dinámicamente.
El siguiente ejemplo utiliza el comando create para crear dinámicamente colecciones para los archivos en la ruta /json/ del almacén de instancias de base de datos federada egGCStore. Utiliza la función collectionName() para asignar nombres a las colecciones según los nombres de archivo de la ruta especificada.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egGCStore", "provider" : "gcs", "region" : "us-central1", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "*", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/{collectionName()}" }] }] }] } }
El siguiente ejemplo utiliza el comando create para crear una colección llamada egCollection que se asigna a un almacén de Atlas Data Federation llamado egGCStore. El egS3Store contiene el conjunto de datos de muestra, airbnb, en una carpeta llamada json.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/*"}]}})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
egCollection
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egGCStore", "provider" : "gcs", "region" : "us-central1", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sample", "collections" : [{ "name" : "egCollection", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/*" }] }] }] } }
Estos ejemplos muestran cómo se puede especificar el comodín "*" con el comando create.
El siguiente ejemplo utiliza el comando create para crear dinámicamente colecciones para los documentos en la base de datos sample_airbnb en el clúster Atlas llamado myTestCluster.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb"}]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb" }] }] }] } }
show collections
listingsAndReviews
El siguiente ejemplo utiliza el comando create para crear dinámicamente colecciones cuyos nombres coinciden con un patrón de expresión regular especificado en la base de datos sample_airbnb en el clúster Atlas llamado myTestCluster.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collectionRegex" : "^list" }]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" } ], "databases" : [ { "name" : "sbxDb", "collections" : [ { "name" : "*", "dataSources" : [ { "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collectionRegex" : "^list" } ] } ] } ] } }
show collections
listingsAndReviews
El siguiente ejemplo utiliza el comando create para crear dinámicamente colecciones para bases de datos creadas dinámicamente.
use * db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore" }]})
{ "ok" : 1 }
El siguiente comando muestra que la colección se creó correctamente:
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" } ], "databases" : [ { "name" : "*", "collections" : [ { "name" : "*", "dataSources" : [ { "storeName" : "egAtlasStore" } ] } ] } ] } }
Las colecciones comodín "*" no se pueden usar en este almacén de datos.
El siguiente ejemplo utiliza el comando create para crear dinámicamente colecciones cuyos nombres coinciden con un nombre de prefijo especificado para el fichero en línea.
use sample db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "adlStore", "datasetPrefix": "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews", "trimLevel": 4 }]})
{ ok: 1 }
El siguiente comando muestra que la colección se creó correctamente:
show collections
sample_airbnb_listingsAndReviews_20220602T124437Z sample_airbnb_listingsAndReviews_20220603T124603Z sample_airbnb_listingsAndReviews_20220604T124420Z sample_airbnb_listingsAndReviews_20220605T124454Z sample_airbnb_listingsAndReviews_20220606T124419Z sample_airbnb_listingsAndReviews_20220607T124515Z
Ejemplo de múltiples fuentes de datos
El siguiente comando crea una colección llamada egCollection en la base de datos sampleDB de la configuración de almacenamiento. La colección egCollection se asigna a los siguientes conjuntos de datos de ejemplo:
airbnbconjunto de datos en lajsoncarpeta en el almacén S3 llamadoegS3Storeairbnbconjunto de datos en la colecciónsample_airbnb.listingsAndReviewsen el clúster Atlas llamadomyTestClusterairbnbconjunto de datos en la URLhttps://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json
Advertencia
No se puede crear una instancia de base de datos federada que se asigne a buckets de AWS S y contenedores de Azure Blob Storage. Atlas Data Federation no admite consultas federadas entre diferentes proveedores de nube.3
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb" },{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collection": "listingsAndReviews" },{"storeName" : "egHttpStore", "urls": ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"]}]})
{ "ok" : 1 }
Los siguientes comandos muestran que la colección se creó correctamente:
show collections
egCollection
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }, { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" }, { "name" : "egHttpStore", "provider" : "http", "urls" : ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"] } ], "databases" : [ { "name" : "sampleDB", "collections" : [{ "name" : "egCollection", "dataSources" : [ { "storeName" : "egS3Store", "path" : "json/airbnb" }, { "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReviews" }, { "storeName" : "egHttpStore", "urls" : ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"] } ] }] } ] } }
El siguiente comando crea una vista llamada listings en la colección airbnb de la base de datos sample con los campos name y property_type:
use sampleDB db.runCommand({ "create" : "listings", "viewOn" : "airbnb", "pipeline" : [{$project: {"property_type":1, "name": 1}}] })
{ "ok" : 1 }
use sampleDB db.runCommand({ "create" : "listings", "pipeline": [{$sql: {statement: "SELECT property_type, name FROM airbnb"} }] })
{ "ok" : 1 }
Los comandos listCollections y storageGetConfig devuelven el siguiente resultado:
db.runCommand({"listCollections":1})
{ "ok" : 1, "cursor" : { "firstBatch" : [ { "name" : "airbnb", "type" : "collection", "info" : { "readOnly" : true } }, { "name" : "listings", "type" : "view", "info" : { "readOnly" : true } } ], "id" : NumberLong(0), "ns" : "egS3Store.$cmd.listCollections" } }
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/" } ], "databases" : [ { "name" : "sample", "collections" : [ { "name" : "airbnb", "dataSources" : [ { "storeName" : "egS3Store", "path" : "json/airbnb/*" } ] }, { "name" : "*", "dataSources" : [ { "storeName" : "egS3Store", "path" : "json/{collectionName()}" } ] } ], "views" : [ { "name" : "listings", "source" : "airbnb", "pipeline" : "[{\"$project\":{\"property_type\":{\"$numberInt\":\"1\"},\"name{\"$numberInt\":\"1\"}}}]" } ] } ] } }
Verificar Colección
Puede verificar que el comando creó correctamente la colección o vista ejecutando cualquiera de los siguientes comandos:
show collections db.runCommand({ "storageGetConfig" : 1 }) db.runCommand({ "listCollections" : 1 })
Solución de problemas de error
Si el comando falla, devuelve uno de los siguientes errores:
El nombre de la tienda no existe
{ "ok" : 0, "errmsg" : "store name does not exist", "code" : 9, "codeName" : "FailedToParse" }
Solución: Asegúrese de que el especificado storeName coincida con el nombre de un almacén en la stores matriz. Puede listStores ejecutar el comando para recuperar la lista de almacenes en la configuración de almacenamiento de su instancia de base de datos federada.
El nombre de la colección ya existe
{ "ok" : 0, "errmsg" : "collection name already exists in the database", "code" : 9, "codeName" : "FailedToParse" }
Solución: Asegúrese de que la colección name sea única. Puede show collections ejecutar el comando para recuperar la lista de colecciones existentes.
Si el comando falla, devuelve el siguiente error:
Ver nombre existe
{ "ok" : 0, "errmsg" : "a view '<database>.<view>' already exists, correlationID = <1603aaffdbc91ba93de6364a>", "code" : 48, "codeName" : "NamespaceExists" }
Solución: Asegúrese de que el nombre de la vista sea único. Puede listCollections ejecutar el comando para recuperar la lista de vistas existentes en una colección.