mongoimport を使用して、いくつかの外部インスタンスのデータをインポートします。
mongoimport では、インポートされる各ドキュメントに source:"where-the-data-comes-from" のようなフィールドを追加できますか?
つまり、サーバー A と B のデータをインポートする場合、各ドキュメントに source:"A" または source:"B" を保存したいと思います。
いいえ。ただし、これはコマンド ラインから実行できます。以下を実行して、たとえば (既存の csv から作成できます) を含む「header.txt」ファイルを作成します。
cat <(head -1 test.csv | tr "," "\n") <(echo source-a) > header.txt
header.txt は次のようになります。
field_a
field_b
.......
source
* 注: このドキュメントに「ソース」フィールドを追加しました。これで、コマンドを実行できます (sed がインストールされていると仮定します)。
sed 's/$/,source-a/' test.csv | mongoimport -d test-db -c test-cl --type csv --fieldFile header.txt
ドキュメントにすでにヘッダー行がある場合は、実行します
sed '1d' test.csv | sed 's/$/,source-a/' | mongoimport -d test -c test --type csv --fieldFile header.txt
代わりに - 「source-a」は、このドキュメントで使用するラベルです。これを bash で簡単にスクリプト化して、インポート ジョブごとにソースと csv のみを提供することができます。