Docs Menu
Docs Home
/ /

create (Comando de Data Federation)

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 stores especificado.

  • En el parámetro path para 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 federada stores.

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.

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 ]} })
Parameter
Tipo
Descripción
Necesidad

<collection-name>|*

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 "*" para crear colecciones dinámicamente.

Puede generar nombres de colecciones dinámicamente a partir de rutas de archivo especificando * como nombre de colección y la collectionName() función en el dataSources.collection campo. De forma predeterminada, Atlas Data Federation crea hasta 100 colecciones de comodines. Puede personalizar el número máximo de colecciones de comodines que Atlas Data Federation genera automáticamente mediante el databases.[n].maxWildcardCollections parámetro. Tenga en cuenta que cada colección de comodines solo puede contener dataSource un.

Requerido

dataSources

Objeto

Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz stores para mapear con la colección.

Requerido

dataSources.storeName

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 stores.[n].name en la matriz stores.

Requerido

dataSources.path

string

Ruta de acceso a los archivos y carpetas. Especifique / para capturar todos los archivos y carpetas de la ruta.prefix Consulte "Definir la sintaxis del archivo de ruta" para obtener más información.

Requerido

dataSources.defaultFormat

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:

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

Si se omite, Data Federation intenta detectar el tipo de archivo procesando algunos bytes del archivo.

Opcional

dataSources.omitAttributes

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:

  • false - para agregar los atributos

  • true - omitir los atributos

Si se omite, el valor predeterminado es false y Atlas Data Federation agrega los atributos.

Opcional

Parameter
Tipo
Descripción
Necesidad

<collection-name>|*

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 "*" para crear colecciones dinámicamente.

Puede generar nombres de colecciones dinámicamente a partir de rutas de archivo especificando * como nombre de colección y la collectionName() función en el dataSources.collection campo. De forma predeterminada, Atlas Data Federation crea hasta 100 colecciones de comodines. Puede personalizar el número máximo de colecciones de comodines que Atlas Data Federation genera automáticamente mediante el databases.[n].maxWildcardCollections parámetro. Tenga en cuenta que cada colección de comodines solo puede contener dataSource un.

Requerido

dataSources

Objeto

Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz stores para mapear con la colección.

Requerido

dataSources.storeName

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 stores.[n].name en la matriz stores.

Requerido

dataSources.path

string

Ruta de acceso a los archivos y carpetas. Especifique / para capturar todos los archivos y carpetas de la ruta.prefix Consulte "Definir la sintaxis del archivo de ruta" para obtener más información.

Requerido

dataSources.defaultFormat

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:

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

Si se omite, Data Federation intenta detectar el tipo de archivo procesando algunos bytes del archivo.

Opcional

dataSources.omitAttributes

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:

  • false - para agregar los atributos

  • true - omitir los atributos

Si se omite, el valor predeterminado es false y Atlas Data Federation agrega los atributos.

Opcional

Parameter
Tipo
Descripción
Necesidad

<collection-name>|*

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 "*" para crear colecciones dinámicamente.

Puede generar nombres de colecciones dinámicamente a partir de rutas de archivo especificando * como nombre de colección y la collectionName() función en el dataSources.collection campo. De forma predeterminada, Atlas Data Federation crea hasta 100 colecciones de comodines. Puede personalizar el número máximo de colecciones de comodines que Atlas Data Federation genera automáticamente mediante el databases.[n].maxWildcardCollections parámetro. Tenga en cuenta que cada colección de comodines solo puede contener dataSource un.

Requerido

dataSources

Objeto

Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz stores para mapear con la colección.

Requerido

dataSources.storeName

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 stores.[n].name en la matriz stores.

Requerido

dataSources.path

string

Ruta de acceso a los archivos y carpetas. Especifique / para capturar todos los archivos y carpetas de la ruta.prefix Consulte "Definir la sintaxis del archivo de ruta" para obtener más información.

Requerido

dataSources.defaultFormat

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:

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

Si se omite, Data Federation intenta detectar el tipo de archivo procesando algunos bytes del archivo.

Opcional

dataSources.omitAttributes

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:

  • false - para agregar los atributos

  • true - omitir los atributos

Si se omite, el valor predeterminado es false y Atlas Data Federation agrega los atributos.

Opcional

Parameter
Tipo
Descripción
Necesidad

<collection-name>|*

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 "*" para crear colecciones dinámicamente.

Puede generar nombres de colección dinámicamente especificando * para el nombre de la colección y omitiendo el parámetro dataSources.collection.

Para las bases de datos generadas dinámicamente, puede generar colecciones comodín especificando * para el nombre de la colección y omitiendo los siguientes parámetros:

  • dataSources.collection

  • dataSources.database

Para las colecciones comodín (*), puede utilizar el parámetro dataSources.collectionRegex para generar colecciones con nombres que coincidan con un patrón de expresión regular.

Requerido

dataSources

Objeto

Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz stores para mapear con la colección.

Requerido

dataSources.storeName

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 stores.[n].name en la matriz stores.

Requerido

dataSources.database

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 (*) para bases de datos generadas dinámicamente.

Condicional

dataSources.collection

string

Nombre de la colección en la base de datos Atlas. Para crear una colección con comodín (*), debe omitir este parámetro.

Condicional

dataSources.collectionRegex

string

Patrón de expresiones regulares para crear la colección de comodines* (). Para obtener más información sobre la sintaxis de expresiones regulares, consulte el lenguaje de programación Go.

Para utilizar patrones de expresiones regulares para nombres de colecciones comodín (*), no debe especificar el parámetro dataSources.collection.

Opcional

Parameter
Tipo
Descripción
Necesidad

<collection-name>

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

dataSources

Objeto

Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz stores para mapear con la colección.

Requerido

dataSources.storeName

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 stores.[n].name en la matriz stores.

Requerido

dataSources.allowInsecure

booleano

Valida el esquema en las URLespecificadas. El valor puede ser uno de los siguientes:

  • true para permitir un esquema HTTP inseguro

  • false Permitir únicamente el esquema seguro HTTPS (predeterminado)

Si es verdadero, Atlas Data Federation:

  • No verifica la cadena de certificados ni el nombre de host del servidor.

  • Acepta cualquier certificado con cualquier nombre de host presentado por el servidor.

ADVERTENCIA: Si configura esta opción true en, sus datos podrían quedar expuestos a un ataque de intermediario, lo que puede comprometer su confidencialidad e integridad. Configure esta opción en true solo para realizar pruebas y comenzar a usar Atlas Data Federation.

Si se omite, es por defecto false.

Opcional

dataSources.urls

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 dataSources.storeName parámetro.

Requerido

dataSources.defaultFormat

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:

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

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

Opcional

Parameter
Tipo
Descripción
Necesidad

<collection-name>

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:

  • Establezca el valor del campo <collection-name> en *.

  • Proporcione valores para los campos datasetPrefix y trimLevel.

  • Omitir el campo datasetName.

Requerido

dataSources

Objeto

Matriz de objetos donde cada objeto representa una instancia de base de datos federada almacenada en la matriz stores para mapear con la colección.

Puede especificar varios dataSources para una colección de comodines solo si todos los dataSources de la colección se asignan a almacenes de archivos en línea.

Requerido

dataSources.storeName

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 stores.[n].name en la matriz stores.

Requerido

datasetName

string

Nombre del conjunto de datos del archivo en línea que se asignará a la colección. El archivo en línea datasetName tiene el siguiente formato:

<version>$<type>$<subtype>$<clusterName>$<dbName>$<collectionName>$<snapshotId>

No se puede especificar datasetName para colecciones con comodines. No se puede especificar datasetName para colecciones sin comodines si se especifica datasetPrefix.

Condicional

datasetPrefix

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 datasetPrefix que especifique.

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 datasetName para especificar este parámetro para colecciones sin comodines.

Condicional

maxDatasets

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 0. Atlas Data Federation devuelve los conjuntos de datos en orden alfabético inverso.

Opcional

trimLevel

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 0. Si se omite, el valor predeterminado es 0.

Puede configurar esta configuración únicamente para colecciones de comodines.

Opcional

Parameter
Tipo
Descripción
Necesidad

<view-name>

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

viewOn

string

El nombre de la colección de origen en la que se creará la vista.

Requerido

pipeline

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

Parameter
Tipo
Descripción
Necesidad

<view-name>

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

pipeline

conjunto de etapas

Etapas de la canalización de agregación que se aplican a la colección. Para las vistas SQL, pipeline debe comenzar con una etapa $sql que especifique una colección de origen en la instrucción SQL.

Requerido

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 }

Los siguientes ejemplos utilizan los datos de muestra airbnb en una tienda AWS S3 con las siguientes configuraciones:

Nombre de la tienda

egS3Store

Región

us-east-2

Cubo

test-data-federation

Prefix

json

Delimiter

/

Conjunto de datos de muestra

airbnb

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

egAzureStore

Prefix

sample

Delimiter

/

Conjunto de datos de muestra

airbnb

Los siguientes ejemplos utilizan los datos de muestra airbnb en una tienda de Google Cloud con la siguiente configuración:

Nombre de la tienda

egGCStore

Región

us-central1

Cubo

test-data-federation

Prefix

json

Delimiter

/

Conjunto de datos de muestra

airbnb

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

egAtlasStore

Conjunto de datos de muestra

sample_airbnb.listingsAndReviews

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

  • https://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

adlStore

Nombre del archivo en línea

v1$atlas$archive$testCluster$sample_airbnb$219eb1cb-20a6-4ce3-800a-aaefd6c227c6$66d512939b1fa57fe057aa22

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 }

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

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:

  • airbnb conjunto de datos en la json carpeta en el almacén S3 llamado egS3Store

  • airbnb conjunto de datos en la colección sample_airbnb.listingsAndReviews en el clúster Atlas llamado myTestCluster

  • airbnb conjunto de datos en la URL https://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\"}}}]"
}
]
}
]
}
}

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

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.

Volver

Lista de tiendas

En esta página