O comando create cria uma collection para stores existente ou umavisualização em uma collection na configuração de armazenamento da instância do banco de dados federado .
O curinga "*" pode ser utilizado com o comando create de duas maneiras:
Como o nome da coleção para criar dinamicamente coleções que mapeiam para arquivos e pastas no armazenamento de instâncias do banco de dados federado
storesespecificado.No parâmetro
pathpara criar uma collection que mapeia para vários arquivos e pastas no caminho de arquivo especificado no armazenamento de instância do instância do banco de dados federado dostores.
Clique na guia para saber mais sobre como criar uma collection ou uma visualização.
Esta guia contém a sintaxe e os parâmetros para criar uma collection. Escolha a guia do armazenamento de instância do banco de dados federado para saber mais sobre a sintaxe e os parâmetros desse armazenamento de instância do banco de dados federado.
Esta guia contém a sintaxe e os parâmetros para criar uma coleção para o armazenamento de instância do banco de dados federado S3 .
Esta guia contém a sintaxe e os parâmetros para criar uma coleção para o armazenamento de instância do banco de dados federado do Azure .
Esta guia contém a sintaxe e os parâmetros para criar uma coleção para o armazenamento de instância do banco Google Cloud Platform de dados federado do Google Cloud Platform.
Esta aba contém a sintaxe e os parâmetros para criar uma collection para o armazenamento de instâncias do banco de dados federado.
Esta aba contém a sintaxe e os parâmetros para criar uma collection para um armazenamento de instância do banco de dados federado HTTP .
Esta aba contém a sintaxe e os parâmetros para criar uma collection para um armazenamento de instância do banco de dados federado do Online Archive.
Esta guia contém a sintaxe e os parâmetros para criar uma exibição para uma coleção ou coleção de origem que você especifica por meio de uma instrução SQL dentro do pipeline.
Esta aba descreve a sintaxe e os parâmetros para criar uma visualização padrão que executa um pipeline de agregação em outra collection.
Esta aba descreve a sintaxe e os parâmetros para criar uma visualização SQL utilizando o estágio $sql.
Sintaxe
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
Parâmetro | Tipo | Descrição | necessidade |
|---|---|---|---|
| string | O nome da collection para a qual o Data Federation mapeia os dados contidos no reconhecimento de data center de instância do banco de dados federado ou o curinga Você pode gerar nomes de collection dinamicamente a partir de caminhos de arquivos, especificando | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| string | Caminho para os arquivos e pastas. Especifique | Obrigatório |
| string | Formate o padrão do Data Federation se encontrar um arquivo sem extensão ao consultar o reconhecimento de data center de instância do banco de dados federado. Os seguintes valores são válidos:
Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo. | Opcional |
| booleano | Sinalizador que especifica se os atributos (pares de chave e valor) devem ser omitidos que o Atlas Data Federation adiciona à coleção. Você pode especificar um dos seguintes valores:
Se omitido, o padrão é | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
|---|---|---|---|
| string | O nome da collection para a qual o Data Federation mapeia os dados contidos no reconhecimento de data center de instância do banco de dados federado ou o curinga Você pode gerar nomes de collection dinamicamente a partir de caminhos de arquivos, especificando | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| string | Caminho para os arquivos e pastas. Especifique | Obrigatório |
| string | Formate o padrão do Data Federation se encontrar um arquivo sem extensão ao consultar o reconhecimento de data center de instância do banco de dados federado. Os seguintes valores são válidos:
Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo. | Opcional |
| booleano | Sinalizador que especifica se os atributos (pares de chave e valor) devem ser omitidos que o Atlas Data Federation adiciona à coleção. Você pode especificar um dos seguintes valores:
Se omitido, o padrão é | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
|---|---|---|---|
| string | O nome da collection para a qual o Data Federation mapeia os dados contidos no reconhecimento de data center de instância do banco de dados federado ou o curinga Você pode gerar nomes de collection dinamicamente a partir de caminhos de arquivos, especificando | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| string | Caminho para os arquivos e pastas. Especifique | Obrigatório |
| string | Formate o padrão do Data Federation se encontrar um arquivo sem extensão ao consultar o reconhecimento de data center de instância do banco de dados federado. Os seguintes valores são válidos:
Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo. | Opcional |
| booleano | Sinalizador que especifica se os atributos (pares de chave e valor) devem ser omitidos que o Atlas Data Federation adiciona à coleção. Você pode especificar um dos seguintes valores:
Se omitido, o padrão é | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
|---|---|---|---|
| string | O nome da collection para a qual o Data Federation mapeia os dados contidos no reconhecimento de data center de instância do banco de dados federado ou o curinga Você pode gerar nomes de coleção dinamicamente especificando Para bancos de dados gerados dinamicamente, você pode gerar coleções curinga especificando
Para coleções curinga ( | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| string | Nome do banco de banco de dados que contém a coleção no Atlas cluster. Você deve omitir este parâmetro para gerar coleções curingas ( | Condicional |
| string | Nome da coleção no banco de banco de dados do Atlas . Para criar uma collection de curinga ( | Condicional |
| string | Padrão regex a ser usado para criar a coleção de curingas ( Para utilizar padrões regex para nomes de coleção curingas ( | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
|---|---|---|---|
| string | O nome da collection para a qual a Atlas Data Federation mapeia os dados contidos no armazenamento da instância do banco de dados federado . Você não pode gerar nomes de coleção dinamicamente especificando | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| booleano | Valida o esquema na s URLespecificada. O valor pode ser um dos seguintes:
Se verdadeiro, o Atlas Data Federation:
AVISO: se você definir isso como Se omitido, o padrão é | Opcional |
| array de strings ou array vazia | As URLs dos arquivos de dados acessíveis publicamente. Não é possível especificar URLs que exijam autenticação. O Atlas Data Federation cria uma partição para cada URL. Se vazio ou omitido, o Atlas Data Federation utiliza os URLs do armazenamento especificado no parâmetro | Obrigatório |
| string | Formate o padrão do Data Federation se encontrar um arquivo sem extensão ao consultar o reconhecimento de data center de instância do banco de dados federado. Os seguintes valores são válidos:
Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo. Se incluído, o formato especificado se aplica somente aos URLs no | Opcional |
Parâmetro | Tipo | Descrição | necessidade | |
|---|---|---|---|---|
| string | O nome da collection para a qual a Atlas Data Federation mapeia os dados contidos no armazenamento da instância do banco de dados federado . Para gerar nomes de coleções dinamicamente, você deve fazer o seguinte:
| Obrigatório | |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array Você pode especificar vários | Obrigatório | |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório | |
| string | Nome do conjunto de dados do arquivo on-line para mapear com a coleção. O arquivo on-line Você não pode especificar o | Condicional | |
| string | Necessário apenas para collections de curingas. Opcional para collection não curinga. Prefixo do nome do conjunto de dados para correspondência com os nomes de conjuntos de dados do arquivo on-line. Se você especificar este parâmetro para coleções curinga, o Atlas Data Federation mapeará as coleções para somente os nomes de conjunto de dados cujo prefixo corresponder ao Se você especificar esse parâmetro para collections não curinga, o Atlas Data Federation mapeará o conjunto de dados mais recente (para o snapshot capturado mais recentemente) para a collection. Você deve omitir | Condicional | |
| int | Somente para collections de curinga. Número máximo de conjuntos de dados a partir dos quais gerar collections dinamicamente para a fonte de dados. O valor deve ser maior que | Opcional | |
| int | Somente para collections de curinga. Número de caracteres a serem cortados à esquerda do nome do conjunto de dados antes de mapear os campos restantes para um nome de coleção curinga. O valor deve ser maior que Você pode definir essa configuração apenas para collections de curingas. | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
|---|---|---|---|
| string | O nome da visualização. O nome de uma visualização deve ser exclusivo. Não pode ser igual ao nome de uma collection ou a qualquer outro nome de visualização no mesmo banco de dados de dados. | Obrigatório |
| string | O nome da coleção de origem na qual criar a visualização. | Obrigatório |
| série de estágios | A array de estágios do agregação pipeline a serem usados para criar a visualização. O pipeline de definição de visualização não pode incluir os estágios $out ou $merge , mesmo dentro de estágios de pipeline aninhados como $lookup ou $facet. | Obrigatório |
Parâmetro | Tipo | Descrição | necessidade |
|---|---|---|---|
| string | O nome da visualização. O nome de uma visualização deve ser exclusivo. Não pode ser igual ao nome de uma collection ou a qualquer outro nome de visualização no mesmo banco de dados de dados. | Obrigatório |
| série de estágios | Os estágios do pipeline de agregação a serem aplicados à coleção. Para visualizações SQL, | Obrigatório |
Saída
O comando retornará a seguinte saída se for bem-sucedido. Você pode verificar os resultados executando os comandos em Verificar Coleção. Se falhar, consulte Solucionar erros abaixo para obter as soluções recomendadas.
{ ok: 1 }
Exemplos
Os exemplos a seguir utilizam os dados de amostra airbnb em um armazenamento da Amazon Web Services S3 com as seguintes configurações:
Nome da loja |
|
Região |
|
Balde |
|
Prefixo |
|
Delimitador |
|
dataset de amostra |
|
Os exemplos a seguir usam os dados da amostra airbnb em um contêiner do Azure Blob Storage com as seguintes configurações:
Nome da loja |
|
Prefixo |
|
Delimitador |
|
dataset de amostra |
|
Os exemplos a seguir usam os airbnb dados de amostra em um Google Cloud Platform armazenamento do Google Cloud Platform com as seguintes configurações:
Nome da loja |
|
Região |
|
Balde |
|
Prefixo |
|
Delimitador |
|
dataset de amostra |
|
Os exemplos seguintes utilizam a collection sample_airbnb.listingsAndReviews do conjunto de dados de amostra no Atlas cluster com as seguintes configurações:
Nome da loja |
|
dataset de amostra |
|
Revise Carregar dados de amostra em seu cluster do Atlas para carregar o conjunto de dados de amostra em seu cluster do Atlas .
Os exemplos a seguir usam as seguintes URLs:
https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.jsonhttps://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json
Os exemplos a seguir usam um arquivo on-line com as seguintes configurações:
Nome da loja |
|
Nome do Online Archive |
|
Exemplo básico
O seguinte comando cria uma collection denominada airbnb no reconhecimento de data center do sampleDB na configuração de armazenamento.
A airbnb coleção mapeia para o airbnb conjunto de dados de amostra no json armazenamento S3 denominada egS3Store.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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" }] }] }] } }
A airbnb coleção mapeia para o airbnb conjunto de dados de amostra no sample armazenamento do Azure denominada egAzureStore.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAzureStore", "path" : "/sample/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
A airbnb coleção mapeia para o airbnb conjunto de dados de amostra na pasta no json armazenamento da Google Cloud Platform Google Cloud egGCStore Platform denominada.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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" }] }] }] } }
A airbnb coleção mapeia para a coleção de listingsAndReviews amostras do no sample_airbnb banco de dados de dados do no Atlas cluster.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReviews" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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" }] }] }] } }
A coleção airbnb inclui uma partição para cada URL na coleção. O sinalizador allowInsecure não está configurado e o padrão é false.
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 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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" ] } ] } ] } ] } }
A coleção airbnb mapeia para os conjuntos de dados de arquivo online no pipeline do sample_airbnb.listingsAndReviews .
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "adlStore", "datasetName" : "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews" }]})
{ "ok" : 1 }
Exemplos de uso de curingas
Estes exemplos mostram como o curinga "*" pode ser especificado com o comando create .
O exemplo seguinte utiliza o comando create para criar collection dinamicamente.
O exemplo abaixo usa o comando create para criar collection dinamicamente para os arquivos no caminho /json/ no reconhecimento de data center de instância do banco de dados federado egS3Store . Ela usa a função collectionName() para nomear as collection após os nomes dos arquivos no caminho especificado.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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()}" }] }] }] } }
O exemplo seguinte utiliza o comando create para criar uma coleção denominada egCollection que mapeia para um armazenamento do Atlas Data Federation denominado egS3Store. O egS3Store contém o conjunto de dados de amostra, airbnb, em uma pasta denominada json.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/*"}]}})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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/*" }] }] }] } }
Os exemplos seguintes mostram como especificar um curinga "*" com o comando create .
O exemplo abaixo usa o comando create para criar collection dinamicamente para os arquivos no caminho /sample/ no reconhecimento de data center de instância do banco de dados federado egAzureStore . Ela usa a função collectionName() para nomear as collection após os nomes dos arquivos no caminho especificado.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
O exemplo seguinte utiliza o comando create para criar uma coleção denominada egCollection que mapeia para um armazenamento do Atlas Data Federation denominado egAzureStore. O egAzureStore contém o conjunto de dados de amostra, airbnb, em uma pasta denominada sample.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/sample/*"}]}})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
egCollection
Estes exemplos mostram como o curinga "*" pode ser especificado com o comando create .
O exemplo seguinte utiliza o comando create para criar collection dinamicamente.
O exemplo abaixo usa o comando create para criar collection dinamicamente para os arquivos no caminho /json/ no reconhecimento de data center de instância do banco de dados federado egGCStore . Ela usa a função collectionName() para nomear as collection após os nomes dos arquivos no caminho especificado.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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()}" }] }] }] } }
O exemplo seguinte utiliza o comando create para criar uma coleção denominada egCollection que mapeia para um armazenamento do Atlas Data Federation denominado egGCStore. O egS3Store contém o conjunto de dados de amostra, airbnb, em uma pasta denominada json.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/*"}]}})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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/*" }] }] }] } }
Estes exemplos mostram como o curinga "*" pode ser especificado com o comando create .
O exemplo seguinte utiliza o comando create para criar dinamicamente coleções para os documentos no banco de dados do sample_airbnb no nome do cluster Atlas myTestCluster.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb"}]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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
O exemplo seguinte utiliza o comando create para criar dinamicamente coleções cujos nomes correspondem a um padrão de regex especificado no banco de banco de dados do sample_airbnb no Atlas cluster denominado myTestCluster.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collectionRegex" : "^list" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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
O exemplo seguinte utiliza o comando create para criar dinamicamente coleções para bancos de dados criados dinamicamente.
use * db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore" }]})
{ "ok" : 1 }
O comando a seguir mostra que a collection foi criada com sucesso:
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" } ], "databases" : [ { "name" : "*", "collections" : [ { "name" : "*", "dataSources" : [ { "storeName" : "egAtlasStore" } ] } ] } ] } }
Coleções curinga "*" não são suportadas neste armazenamento de dados.
O exemplo seguinte utiliza o comando create para criar dinamicamente as coleções cujos nomes correspondem a um nome de prefixo especificado para o arquivo online.
use sample db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "adlStore", "datasetPrefix": "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews", "trimLevel": 4 }]})
{ ok: 1 }
O comando a seguir mostra que a collection foi criada com sucesso:
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
Exemplo de múltiplos conjuntos de dados
O seguinte comando cria uma collection denominada egCollection no reconhecimento de data center do sampleDB na configuração de armazenamento. A collection egCollection mapeia para os seguintes conjuntos de dados de amostra:
airbnbconjunto de dados na pastajsonno armazenamento S3 chamadoegS3Storeairbnbconjunto de dados na coleçãosample_airbnb.listingsAndReviewsno Atlas cluster denominadomyTestClusterairbnbconjunto de dados na URLhttps://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json
Aviso
Você não pode criar uma instância do banco de dados federado que mapeie para buckets Amazon Web Services S3 e Azure containers Blob Storage. O Atlas Data Federation não permite consultas federadas em diferentes fornecedores de nuvem.
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 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
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"] } ] }] } ] } }
O seguinte comando cria uma visualização denominada listings na collection airbnb no banco de banco de dados sample com os campos name e 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 }
Os comandos listCollections e storageGetConfig retornam a seguinte saída:
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 collection
Você pode verificar se o comando criou a collection ou visualização corretamente executando qualquer um dos seguintes comandos:
show collections db.runCommand({ "storageGetConfig" : 1 }) db.runCommand({ "listCollections" : 1 })
Solução de problemas de erros
Se o comando falhar, ele retornará um dos seguintes erros:
O nome da loja não existe
{ "ok" : 0, "errmsg" : "store name does not exist", "code" : 9, "codeName" : "FailedToParse" }
Solução: certifique-se de que o storeName especificado corresponda ao nome de uma loja na array stores . Você pode executar o comando listStores para recuperar a lista de armazenamentos na configuração de armazenamento da instância do banco de dados federado.
O Nome da collection Já Existe
{ "ok" : 0, "errmsg" : "collection name already exists in the database", "code" : 9, "codeName" : "FailedToParse" }
Solução: certifique-se de que a collection name seja única. Você pode executar o comando show collections para recuperar a lista de collection existentes.
Se o comando falhar, ele retornará o seguinte erro:
Ver nome existe
{ "ok" : 0, "errmsg" : "a view '<database>.<view>' already exists, correlationID = <1603aaffdbc91ba93de6364a>", "code" : 48, "codeName" : "NamespaceExists" }
Solução: certifique-se de que o nome da visualização seja exclusivo. Você pode executar o comando listCollections para recuperar a lista de visualizações existentes em uma coleção.