Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

create

項目一覧

  • 構文
  • パラメーター
  • 出力
  • コレクションを検証する
  • エラーのトラブルシューティング

createコマンドは、既存のstoresのコレクションまたはフェデレーティッドデータベースインスタンス ストレージ構成内のコレクションに対するビューを作成します。

ワイルドカード"*"は、 createコマンドで次の 2 つの方法で使用できます。

  • 指定されたstoresフェデレーティッドデータベースインスタンス ストア内のファイルとフォルダーにマッピングするコレクションを動的に作成するためのコレクションの名前。

  • pathパラメーターを使用して、 storesフェデレーティッドデータベースインスタンス ストア上の指定されたファイルパス内に複数のファイルとフォルダーにマッピングするコレクションを作成します。

コレクションまたはビューの作成の詳細については、 タブをクリックしてください。

このタブには、コレクションを作成するための構文とパラメータが含まれています。 フェデレーティッドデータベースインスタンス ストアの タブを選択して、そのフェデレーティッドデータベースインスタンス ストアの構文とパラメーターの詳細を確認します。

このタブには、 S 3フェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメータが含まれています。

このタブには、 Azureフェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメーターが含まれています。

このタブには、Google Cloudフェデレーティッドデータベースインスタンスストアのコレクションを作成するための構文とパラメータが含まれています。

このタブには、フェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメーターが含まれています。

このタブには、 HTTPフェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメータが含まれています。

このタブには、Atlas Online Archive フェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメータが含まれています。

このタブには、パイプライン内で SQL ステートメントを通じて指定するソース コレクションまたはコレクションのビューを作成するための構文とパラメーターが含まれています。

このタブでは、別のコレクションで集計パイプラインを実行する標準ビューを作成するための構文とパラメーターについて説明します。

このタブでは、 $sqlステージを使用して 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
タイプ
説明
必要性
<collection-name>|*
string

Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前、またはコレクションを動的に作成するためのワイルドカード"*"のいずれか。

コレクション名に*を指定し、 dataSources.collectionフィールドにcollectionName()関数を指定することで、ファイル パスからコレクション名を動的に生成できます。 デフォルトでは、Atlas Data Federation は最大100のワイルドカード コレクションを作成します。 databases.[n].maxWildcardCollectionsパラメーターを使用して、Atlas Data Federation が自動的に生成するワイルドカード コレクションの最大数をカスタマイズできます。 各ワイルドカード コレクションには、 dataSourceのみを含めることができます。

必須
dataSources
オブジェクト

コレクションにマッピングするために、 stores配列にあるフェデレーティッドデータベースインスタンスを表すオブジェクトの配列。

必須
dataSources.storeName
string

コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値はstores配列のstores.[n].nameと一致する必要があります。

必須
dataSources.path
string
ファイルとフォルダーへのパス。 prefixパスからすべてのファイルとフォルダーを取得するには、 /を指定します。 詳細については、「 S 3データのパスの定義 」を参照してください。
必須
dataSources.defaultFormat
string

フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。

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

省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。

任意
dataSources.omitAttributes
ブール値

Atlas Data Federation がコレクションに追加する属性(キーと値のペア)を省略するかどうかを指定するフラグ。 次のいずれかの値を指定できます。

  • false - 属性を追加する

  • true - 属性を省略する

省略した場合、デフォルトはfalseになり、Atlas Data Federation は属性を追加します。

任意
Parameter
タイプ
説明
必要性
<collection-name>|*
string

Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前、またはコレクションを動的に作成するためのワイルドカード"*"のいずれか。

コレクション名に*を指定し、 dataSources.collectionフィールドにcollectionName()関数を指定することで、ファイル パスからコレクション名を動的に生成できます。 デフォルトでは、Atlas Data Federation は最大100のワイルドカード コレクションを作成します。 databases.[n].maxWildcardCollectionsパラメーターを使用して、Atlas Data Federation が自動的に生成するワイルドカード コレクションの最大数をカスタマイズできます。 各ワイルドカード コレクションには、 dataSourceのみを含めることができます。

必須
dataSources
オブジェクト

コレクションにマッピングするために、 stores配列にあるフェデレーティッドデータベースインスタンスを表すオブジェクトの配列。

必須
dataSources.storeName
string

コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値はstores配列のstores.[n].nameと一致する必要があります。

必須
dataSources.path
string
ファイルとフォルダーへのパス。 prefixパスからすべてのファイルとフォルダーを取得するには、 /を指定します。 詳細については、「 S 3データのパスの定義 」を参照してください。
必須
dataSources.defaultFormat
string

フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。

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

省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。

任意
dataSources.omitAttributes
ブール値

Atlas Data Federation がコレクションに追加する属性(キーと値のペア)を省略するかどうかを指定するフラグ。 次のいずれかの値を指定できます。

  • false - 属性を追加する

  • true - 属性を省略する

省略した場合、デフォルトはfalseになり、Atlas Data Federation は属性を追加します。

任意
Parameter
タイプ
説明
必要性
<collection-name>|*
string

Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前、またはコレクションを動的に作成するためのワイルドカード"*"のいずれか。

コレクション名に*を指定し、 dataSources.collectionフィールドにcollectionName()関数を指定することで、ファイル パスからコレクション名を動的に生成できます。 デフォルトでは、Atlas Data Federation は最大100のワイルドカード コレクションを作成します。 databases.[n].maxWildcardCollectionsパラメーターを使用して、Atlas Data Federation が自動的に生成するワイルドカード コレクションの最大数をカスタマイズできます。 各ワイルドカード コレクションには、 dataSourceのみを含めることができます。

必須
dataSources
オブジェクト

コレクションにマッピングするために、 stores配列にあるフェデレーティッドデータベースインスタンスを表すオブジェクトの配列。

必須
dataSources.storeName
string

コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値はstores配列のstores.[n].nameと一致する必要があります。

必須
dataSources.path
string
ファイルとフォルダーへのパス。 prefixパスからすべてのファイルとフォルダーを取得するには、 /を指定します。 詳細については、「 S 3データのパスの定義 」を参照してください。
必須
dataSources.defaultFormat
string

フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。

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

省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。

任意
dataSources.omitAttributes
ブール値

Atlas Data Federation がコレクションに追加する属性(キーと値のペア)を省略するかどうかを指定するフラグ。 次のいずれかの値を指定できます。

  • false - 属性を追加する

  • true - 属性を省略する

省略した場合、デフォルトはfalseになり、Atlas Data Federation は属性を追加します。

任意
Parameter
タイプ
説明
必要性
<collection-name>|*
string

Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前、またはコレクションを動的に作成するためのワイルドカード"*"のいずれか。

コレクション名に*を指定し、 dataSources.collectionパラメータを省略することで、コレクション名を動的に生成できます。

動的に生成されたデータベースの場合、コレクション名に*を指定し、次のパラメータを省略することで、ワイルドカード コレクションを生成できます。

  • dataSources.collection

  • dataSources.database

ワイルドカード( * )コレクションの場合、 dataSources.collectionRegexパラメータを使用して正規表現パターンに一致する名前のコレクションを生成できます。

必須
dataSources
オブジェクト

コレクションにマッピングするために、 stores配列にあるフェデレーティッドデータベースインスタンスを表すオブジェクトの配列。

必須
dataSources.storeName
string

コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値はstores配列のstores.[n].nameと一致する必要があります。

必須
dataSources.database
string
Atlas クラスター内のコレクションを含むデータベースの名前。 動的に生成されたデータベースのワイルドカード( * )コレクションを生成するには、このパラメーターを省略する必要があります。
条件付き
dataSources.collection
string
Atlas データベース内のコレクションの名前。 ワイルドカード( * )コレクションを作成する場合は、このパラメータを省略する必要があります。
条件付き
dataSources.collectionRegex
string

ワイルドカード( * )コレクションの作成に使用する正規表現パターン。 正規表現構文の詳細については、「 Go プログラミング言語 」を参照してください。

ワイルドカード( * )コレクション名に正規表現パターンを使用するには、 dataSources.collectionパラメータを指定しないでください。

任意
Parameter
タイプ
説明
必要性
<collection-name>
string
Atlas Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前。 *を指定してコレクション名を動的に生成することはできません。
必須
dataSources
オブジェクト

コレクションにマッピングするために、 stores配列にあるフェデレーティッドデータベースインスタンスを表すオブジェクトの配列。

必須
dataSources.storeName
string

コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値はstores配列のstores.[n].nameと一致する必要があります。

必須
dataSources.allowInsecure
ブール値

指定されたURLのスキームを検証します。 値は次のいずれかになります。

  • true 安全でないHTTPスキームを許可する

  • false 安全なHTTPSスキームのみを許可します(デフォルト)

true の場合、Atlas Data Federation は次のように動作します。

  • サーバーの証明書チェーンとホスト名を検証しません。

  • サーバーによって提示されたホスト名を持つ任意の証明書を受け入れます。

警告:これをtrueに設定すると、データが中間者攻撃(man-in-the-middle attack)に対して脆弱になり、データの機密性と整合性が損なわれる可能性があります。 Atlas Data Federation のテストと使用を開始する場合のみ、これをtrueに設定します。

省略した場合、デフォルトは false になります。

任意
dataSources.urls
文字列の配列または空の配列
一般にアクセス可能なデータファイルのURL 。 認証が必要なURLは指定できません。 Atlas Data Federation は、各URLのパーティションを作成します。 空または省略した場合、Atlas Data Federation はdataSources.storeNameパラメータで指定されたストアのURLを使用します。
必須
dataSources.defaultFormat
string

フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。

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

省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。

含まれている場合、指定された形式はdataSource内のURLにのみ適用されます。

任意
Parameter
タイプ
説明
必要性
<collection-name>
string

Atlas Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前。 コレクション名を動的に生成するには、次の操作を行う必要があります。

  • <collection-name>フィールドの値を*に設定します。

  • datasetPrefixtrimLevelフィールドと フィールドに値を指定します。

  • datasetNameフィールドを省略します。

必須
dataSources
オブジェクト

コレクションにマッピングするために、 stores配列にあるフェデレーティッドデータベースインスタンスを表すオブジェクトの配列。

コレクションのすべてのdataSourcesがオンライン アーカイブ ストアにマップされている場合にのみ、ワイルドカード コレクションに複数のdataSourcesを指定できます。

必須
dataSources.storeName
string

コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値はstores配列のstores.[n].nameと一致する必要があります。

必須
datasetName
string

コレクションにマッピングするオンライン アーカイブ データセットの名前。 オンライン アーカイブdatasetNameの形式は次のとおりです。

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

ワイルドカード コレクションにdatasetNameを指定することはできません。 datasetPrefixを指定した場合、非ワイルドカード コレクションに対してdatasetNameを指定することはできません。

条件付き
datasetPrefix
string

ワイルドカード コレクションにのみ必要です。 非ワイルドカード コレクションの場合は任意。

オンライン アーカイブ データセット名と照合するためのデータセット名のプレフィックス。

ワイルドカード コレクションにこのパラメーターを指定すると、Atlas Data Federation は、指定したdatasetPrefixと一致するプレフィックスを持つデータセット名のみにコレクションをマッピングします。

非ワイルドカード コレクションにこのパラメーターを指定すると、Atlas Data Federation は最新のデータセット(最後にキャプチャされたスナップショット)を コレクションにマッピングします。 非ワイルドカード コレクションでこのパラメータを指定するには、 datasetNameを省略する必要があります。

条件付き
maxDatasets
整数

ワイルドカード コレクションのみ。

データソースのコレクションを動的に生成するデータセットの最大数。 値は0より大きくなければなりません。 Atlas Data Federation は、アルファベット順の逆順でデータセットを返します。

任意
trimLevel
整数

ワイルドカード コレクションのみ。

残りのフィールドをワイルドカード コレクション名にマッピングする前に、データセット名の左側から削除する文字数。 値は0より大きくなければなりません。 省略された場合、デフォルトは0となります。

この設定は ワイルドカード コレクションでのみ設定できます。

任意
Parameter
タイプ
説明
必要性
<view-name>
string
ビューの名前。 ビュー名は一意である必要があります。 コレクション名または同じデータベース内の他のビュー名と同じにすることはできません。
必須
viewOn
string
ビューを作成するソース コレクションの名前。
必須
pipeline
ステージの配列
必須
Parameter
タイプ
説明
必要性
<view-name>
string
ビューの名前。 ビュー名は一意である必要があります。 コレクション名または同じデータベース内の他のビュー名と同じにすることはできません。
必須
pipeline
ステージの配列
コレクションに適用する集計パイプライン ステージ。 SQL ビューの場合、 pipelineは SQL ステートメントでソース コレクションを指定する$sqlステージで開始する必要があります。
必須

コマンドは、成功した場合、次の出力を返します。 コレクションの検証で コマンドを実行し、結果を検証できます。 失敗した場合に推奨される解決策については、以下の「 エラーのトラブルシューティング 」を参照してください。

{ ok: 1 }

次の例では、次の設定を持つAmazon Web Services S3ストアのサンプル airbnb データを使用します。

店舗名
egS3Store
リージョン
us-east-2
バケット
test-data-federation
Prefix
json
Delimiter
/
サンプルデータセット
airbnb

次の例では、次の設定を持つ Azure Blog Storage コンテナ上のサンプルairbnbデータを使用します。

店舗名
egAzureStore
Prefix
sample
Delimiter
/
サンプルデータセット
airbnb

次の例では、次の設定を持つ Google Cloud ストアでサンプルairbnbデータを使用します。

店舗名
egGCStore
リージョン
us-central1
バケット
test-data-federation
Prefix
json
Delimiter
/
サンプルデータセット
airbnb

次の例では、次の設定を持つ Atlas クラスター上のサンプル データセットsample_airbnb.listingsAndReviewsコレクションを使用します。

店舗名
egAtlasStore
サンプルデータセット
sample_airbnb.listingsAndReviews

「 Atlas クラスターへのサンプル データのロード 」を確認して、サンプル データセットをAtlas クラスターにロードします。

次の例では、次の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

次の例では、次の設定を持つオンライン アーカイブを使用します。

店舗名
adlStore
Atlas Online Archive の名前
v1$atlas$archive$testCluster$sample_airbnb$219eb1cb-20a6-4ce3-800a-aaefd6c227c6$66d512939b1fa57fe057aa22

次のコマンドでは、 ストレージ構成のsampleDBデータベースにairbnbという名前のコレクションが作成されます。

airbnbコレクションは、 egS3Storeという名前のS 3ストアのjsonフォルダーにあるairbnbサンプル データセットにマッピングします。

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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"
}]
}]
}]
}
}

airbnbコレクションは、 egAzureStoreという名前のAzureストアのsampleフォルダーにあるairbnbサンプル データセットにマップされます。

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAzureStore", "path" : "/sample/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

show collections
airbnb

airbnbコレクションは、 egGCStoreという名前の Google Cloud ストアのjsonフォルダにあるairbnbサンプルデータセットにマッピングします。

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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"
}]
}]
}]
}
}

airbnbコレクションは、Atlas クラスターのsample_airbnbデータベース内のlistingsAndReviewsサンプル コレクションにマッピングします。

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReviews" }]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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"
}]
}]
}]
}
}

airbnbコレクションには、コレクション内の各URLのパーティションが含まれています。 allowInsecureフラグは設定されておらず、デフォルトで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 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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"
]
}
]
}
]
}
]
}
}

airbnbコレクションは、 sample_airbnb.listingsAndReviewsパイプラインのオンライン アーカイブ データセットにマッピングします。

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "adlStore", "datasetName" : "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews" }]})
{ "ok" : 1 }

これらの例では、ワイルドカード"*"createコマンドで指定する方法を示しています。

次の例では、 createコマンドを使用してコレクションを動的に作成します。

次の例では、 createコマンドを使用して、 egS3Storeフェデレーティッドデータベースインスタンス ストア内のパス/json/内のファイルのコレクションを動的に作成します。 collectionName()関数を使用して、指定されたパス内のファイル名にちなんでコレクションに名前を付けます。

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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()}"
}]
}]
}]
}
}

次の例では、 createコマンドを使用して、 egS3Storeという名前の Atlas Data Federation ストアにマッピングするegCollectionという名前のコレクションを作成します。 egS3Storeにはjsonという名前のフォルダーにサンプル データセットairbnbが含まれています。

use sampleDB
db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/*"}]}})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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/*"
}]
}]
}]
}
}

次の例は、 createコマンドでワイルドカード"*"を指定する方法を示しています。

次の例では、 createコマンドを使用して、 egAzureStoreフェデレーティッドデータベースインスタンス ストア内のパス/sample/内のファイルのコレクションを動的に作成します。 collectionName()関数を使用して、指定されたパス内のファイル名にちなんでコレクションに名前を付けます。

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

show collections
airbnb

次の例では、 createコマンドを使用して、 egAzureStoreという名前の Atlas Data Federation ストアにマッピングするegCollectionという名前のコレクションを作成します。 egAzureStoreにはsampleという名前のフォルダーにサンプル データセットairbnbが含まれています。

use sampleDB
db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/sample/*"}]}})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

show collections
egCollection

これらの例では、ワイルドカード"*"createコマンドで指定する方法を示しています。

次の例では、 createコマンドを使用してコレクションを動的に作成します。

次の例では、 createコマンドを使用して、 egGCStoreフェデレーティッドデータベースインスタンス ストア内のパス/json/内のファイルのコレクションを動的に作成します。 collectionName()関数を使用して、指定されたパス内のファイル名にちなんでコレクションに名前を付けます。

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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()}"
}]
}]
}]
}
}

次の例では、 createコマンドを使用して、 egGCStoreという名前の Atlas Data Federation ストアにマッピングするegCollectionという名前のコレクションを作成します。 egS3Storeにはjsonという名前のフォルダーにサンプル データセットairbnbが含まれています。

use sampleDB
db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/*"}]}})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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/*"
}]
}]
}]
}
}

これらの例では、ワイルドカード"*"createコマンドで指定する方法を示しています。

次の例では、 createコマンドを使用して、Atlas クラスター名myTestCluster上のsample_airbnbデータベース内のドキュメントのコレクションを動的に作成します。

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb"}]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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

次の例では、 createコマンドを使用して、 myTestClusterという名前の Atlas クラスター上のsample_airbnbデータベースに、指定された正規表現パターンと一致する名前を持つコレクションを動的に作成します。

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collectionRegex" : "^list" }]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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

次の例では、 createコマンドを使用して、動的に作成されるデータベースのコレクションを動的に作成します。

use *
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore" }]})
{ "ok" : 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

db.runCommand({storageGetConfig:1})
{
"ok" : 1,
"storage" : {
"stores" : [
{
"name" : "egAtlasStore",
"provider" : "atlas",
"clusterName" : "myTestCluster",
"projectId" : "<project-id>"
}
],
"databases" : [
{
"name" : "*",
"collections" : [
{
"name" : "*",
"dataSources" : [
{
"storeName" : "egAtlasStore"
}
]
}
]
}
]
}
}

このデータストアでは、ワイルドカード"*"コレクションはサポートされていません。

次の例では、 createコマンドを使用して、オンライン アーカイブ用に指定されたプレフィックス名と一致する名前のコレクションを動的に作成します。

use sample
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "adlStore", "datasetPrefix": "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews", "trimLevel": 4 }]})
{ ok: 1 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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

次のコマンドでは、 ストレージ構成のsampleDBデータベースにegCollectionという名前のコレクションが作成されます。 egCollectionコレクションは、次のサンプル データセットにマッピングします。

  • airbnb egS3Storeという名前のS 3ストアのjsonフォルダーにあるデータセット

  • airbnb myTestClusterという名前の Atlas クラスター上のsample_airbnb.listingsAndReviewsコレクション内のデータセット

  • airbnb URL https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.jsonのデータセット

警告

Amazon Web Services S3バケットとAzure Blob ストレージ コンテナの両方にマッピングするフェデレーティッドデータベースインスタンスは作成できません。 Atlas Data Federation は、異なるクラウドプロバイダーにわたるフェデレーティッドクエリをサポートしていません。

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 }

次のコマンドは、コレクションが正常に作成されたことを示しています。

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"]
}
]
}]
}
]
}
}

次のコマンドを実行すると、listings airbnbsampleフィールドと フィールドを持つ データベース内の コレクションにname 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 }

listCollectionsコマンドとstorageGetConfigコマンドは、次の出力を返します。

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\"}}}]"
}
]
}
]
}
}

コマンドが コレクションまたはビューを正常に作成したことを確認するには、次のいずれかのコマンドを実行します。

show collections
db.runCommand({ "storageGetConfig" : 1 })
db.runCommand({ "listCollections" : 1 })

コマンドが失敗した場合は、次のいずれかのエラーが返されます。

店舗名が存在しない

{
"ok" : 0,
"errmsg" : "store name does not exist",
"code" : 9,
"codeName" : "FailedToParse"
}

解決策:指定されたstoreNamestores配列内の店舗の名前と一致していることを確認します。 フェデレーティッドデータベースインスタンス ストレージ構成内のストアのリストを取得するには、 listStoresコマンドを実行します。

コレクション名は すでに存在します

{
"ok" : 0,
"errmsg" : "collection name already exists in the database",
"code" : 9,
"codeName" : "FailedToParse"
}

解決策:コレクションnameが一意であることを確認します。 既存のコレクションのリストを取得するには、 show collectionsコマンドを実行します。

コマンドが失敗した場合、次のエラーが返されます。

ビュー名が存在する

{
"ok" : 0,
"errmsg" : "a view '<database>.<view>' already exists, correlationID = <1603aaffdbc91ba93de6364a>",
"code" : 48,
"codeName" : "NamespaceExists"
}

解決法:ビュー名が一意であることを確認します。 コレクションの既存のビューのリストを取得するには、 listCollectionsコマンドを実行します。

戻る

ストアを一覧表示する