Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ / /

create

Nesta página

  • Sintaxe
  • Parâmetros
  • Saída
  • Exemplos
  • Verificar collection
  • Solução de problemas de erros

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

  • No parâmetro path para 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 do stores .

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 de dados federado do Google Cloud.

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 .

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âmetro
Tipo
Descrição
necessidade
<collection-name>|*
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 "*" para criar collection dinamicamente.

Você pode gerar nomes de collection dinamicamente a partir de caminhos de arquivos, especificando * para o nome da collection e a função collectionName() no campo dataSources.collection . Por padrão, o Atlas Data Federation cria até 100 collection de curingas. Você pode personalizar o número máximo de collection de curingas que o Atlas Data Federation gera automaticamente utilizando o parâmetro databases.[n].maxWildcardCollections . Observe que cada collection de curinga pode conter apenas um dataSource.

Obrigatório
dataSources
objeto

Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array stores para mapear com a collection.

Obrigatório
dataSources.storeName
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 stores.[n].name na array stores .

Obrigatório
dataSources.path
string
Caminho para os arquivos e pastas. Especifique / para capturar todos os arquivos e pastas do caminho prefix . Consulte Definir Caminho para Dados S3 para mais informações.
Obrigatório
dataSources.defaultFormat
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:

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

Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo.

Opcional
dataSources.omitAttributes
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:

  • false - para adicionar os atributos

  • true - omitir os atributos

Se omitido, o padrão é false e o Atlas Data Federation adiciona os atributos.

Opcional
Parâmetro
Tipo
Descrição
necessidade
<collection-name>|*
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 "*" para criar collection dinamicamente.

Você pode gerar nomes de collection dinamicamente a partir de caminhos de arquivos, especificando * para o nome da collection e a função collectionName() no campo dataSources.collection . Por padrão, o Atlas Data Federation cria até 100 collection de curingas. Você pode personalizar o número máximo de collection de curingas que o Atlas Data Federation gera automaticamente utilizando o parâmetro databases.[n].maxWildcardCollections . Observe que cada collection de curinga pode conter apenas um dataSource.

Obrigatório
dataSources
objeto

Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array stores para mapear com a collection.

Obrigatório
dataSources.storeName
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 stores.[n].name na array stores .

Obrigatório
dataSources.path
string
Caminho para os arquivos e pastas. Especifique / para capturar todos os arquivos e pastas do caminho prefix . Consulte Definir Caminho para Dados S3 para mais informações.
Obrigatório
dataSources.defaultFormat
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:

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

Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo.

Opcional
dataSources.omitAttributes
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:

  • false - para adicionar os atributos

  • true - omitir os atributos

Se omitido, o padrão é false e o Atlas Data Federation adiciona os atributos.

Opcional
Parâmetro
Tipo
Descrição
necessidade
<collection-name>|*
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 "*" para criar collection dinamicamente.

Você pode gerar nomes de collection dinamicamente a partir de caminhos de arquivos, especificando * para o nome da collection e a função collectionName() no campo dataSources.collection . Por padrão, o Atlas Data Federation cria até 100 collection de curingas. Você pode personalizar o número máximo de collection de curingas que o Atlas Data Federation gera automaticamente utilizando o parâmetro databases.[n].maxWildcardCollections . Observe que cada collection de curinga pode conter apenas um dataSource.

Obrigatório
dataSources
objeto

Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array stores para mapear com a collection.

Obrigatório
dataSources.storeName
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 stores.[n].name na array stores .

Obrigatório
dataSources.path
string
Caminho para os arquivos e pastas. Especifique / para capturar todos os arquivos e pastas do caminho prefix . Consulte Definir Caminho para Dados S3 para mais informações.
Obrigatório
dataSources.defaultFormat
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:

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

Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo.

Opcional
dataSources.omitAttributes
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:

  • false - para adicionar os atributos

  • true - omitir os atributos

Se omitido, o padrão é false e o Atlas Data Federation adiciona os atributos.

Opcional
Parâmetro
Tipo
Descrição
necessidade
<collection-name>|*
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 "*" para criar collection dinamicamente.

Você pode gerar nomes de coleção dinamicamente especificando * para o nome da coleção e omitindo o parâmetro dataSources.collection .

Para bancos de dados gerados dinamicamente, você pode gerar coleções curinga especificando * para o nome da coleção e omitindo os seguintes parâmetros:

  • dataSources.collection

  • dataSources.database

Para coleções curinga (*), você pode utilizar o parâmetro dataSources.collectionRegex para gerar coleções com nomes que correspondem a um padrão regex.

Obrigatório
dataSources
objeto

Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array stores para mapear com a collection.

Obrigatório
dataSources.storeName
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 stores.[n].name na array stores .

Obrigatório
dataSources.database
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 (*) para bancos de dados gerados dinamicamente.
Condicional
dataSources.collection
string
Nome da coleção no banco de banco de dados do Atlas . Para criar uma collection de curinga (*), você deve omitir este parâmetro.
Condicional
dataSources.collectionRegex
string

Padrão regex a ser usado para criar a coleção curinga (*). Para saber mais sobre a sintaxe regex, consulte Linguagem de programação Go.

Para utilizar padrões regex para nomes de coleção curingas (*), você não deve especificar o parâmetro dataSources.collection .

Opcional
Parâmetro
Tipo
Descrição
necessidade
<collection-name>
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
dataSources
objeto

Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array stores para mapear com a collection.

Obrigatório
dataSources.storeName
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 stores.[n].name na array stores .

Obrigatório
dataSources.allowInsecure
booleano

Valida o esquema na s URLespecificada. O valor pode ser um dos seguintes:

  • true para permitir esquema HTTP inseguro

  • false para permitir apenas esquema HTTPS seguro (padrão)

Se verdadeiro, o Atlas Data Federation:

  • Não verifica a cadeia de certificado do servidor e o nome do host.

  • Aceita qualquer certificado com qualquer nome de host apresentado pelo servidor.

AVISO: se você definir isso como true, seus dados poderão ficar vulneráveis a um ataques do tipo man-in-the-middle, que pode comprometer a confidencialidade e a integridade dos seus dados. Defina isso como true apenas para testar e começar a usar o Atlas Data Federation.

Se omitido, o padrão é false.

Opcional
dataSources.urls
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 dataSources.storeName .
Obrigatório
dataSources.defaultFormat
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:

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

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

Opcional
Parâmetro
Tipo
Descrição
necessidade
<collection-name>
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:

  • Defina o valor do campo <collection-name> como *.

  • Forneça valores para os campos datasetPrefix e trimLevel .

  • Omitir o campo datasetName .

Obrigatório
dataSources
objeto

Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array stores para mapear com a collection.

Você pode especificar vários dataSources para uma coleção de curingas somente se todos os dataSources do mapa de coleção para armazenamentos de arquivos online.

Obrigatório
dataSources.storeName
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 stores.[n].name na array stores .

Obrigatório
datasetName
string

Nome do conjunto de dados do arquivo on-line para mapear com a coleção. O arquivo on-line datasetName está no seguinte formato:

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

Você não pode especificar o datasetName para coleções de curingas. Você não pode especificar o datasetName para collections não curingas se especificar datasetPrefix.

Condicional
datasetPrefix
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 datasetPrefix que você especifica.

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 datasetName para especificar este parâmetro para collections não curingas.

Condicional
maxDatasets
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 0. O Atlas Data Federation gera conjuntos de dados em ordem alfabética inversa.

Opcional
trimLevel
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 0. Se omitido, o padrão é 0.

Você pode definir essa configuração apenas para collections de curingas.

Opcional
Parâmetro
Tipo
Descrição
necessidade
<view-name>
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
viewOn
string
O nome da coleção de origem na qual criar a visualização.
Obrigatório
pipeline
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
<view-name>
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
pipeline
série de estágios
Os estágios do pipeline de agregação a serem aplicados à coleção. Para visualizações SQL, pipeline deve começar com um estágio $sql que especifique uma collection de origem na instrução SQL.
Obrigatório

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 }

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
egS3Store
Região
us-east-2
Balde
test-data-federation
Prefixo
json
Delimitador
/
dataset de amostra
airbnb

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
egAzureStore
Prefixo
sample
Delimitador
/
dataset de amostra
airbnb

Os exemplos a seguir usam os dados de amostra airbnb em um armazenamento do Google Cloud com as seguintes configurações:

Nome da loja
egGCStore
Região
us-central1
Balde
test-data-federation
Prefixo
json
Delimitador
/
dataset de amostra
airbnb

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
egAtlasStore
dataset de amostra
sample_airbnb.listingsAndReviews

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

  • https://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
adlStore
Nome do Online Archive
v1$atlas$archive$testCluster$sample_airbnb$219eb1cb-20a6-4ce3-800a-aaefd6c227c6$66d512939b1fa57fe057aa22

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 no json armazenamento do Google Cloud denominada egGCStore.

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 }

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

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:

  • airbnb conjunto de dados na pasta json no armazenamento S3 chamado egS3Store

  • airbnb conjunto de dados na coleção sample_airbnb.listingsAndReviews no Atlas cluster denominado myTestCluster

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

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

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.

Voltar

Listar armaz´m