MongoDBコマンドの結果をフラットファイルにエクスポートするにはどうすればよいですか?
たとえばdb.collectionname.find()
、フラットファイルに入る場合です。
試しdb.collectionname.find() >> "test.txt"
たがうまくいかないようです。
MongoDBコマンドの結果をフラットファイルにエクスポートするにはどうすればよいですか?
たとえばdb.collectionname.find()
、フラットファイルに入る場合です。
試しdb.collectionname.find() >> "test.txt"
たがうまくいかないようです。
コマンドラインから次のことを試すことができます
mongo 127.0.0.1/db --eval "var c = db.collection.find(); while(c.hasNext()) {printjson(c.next())}" >> test.txt
ローカルホストで実行されている「db」というデータベースと「collection」というコレクションがあるとすると、これによりすべてのレコードがtest.txtというファイルにエクスポートされます。
実行したい長いスクリプトがある場合は、script.jsファイルを作成して使用することもできます
mongo 127.0.0.1/db script.js >> test.txt
これがお役に立てば幸いです
私はmongoシェルから直接それを行う方法を知りませんが、mongoexportにクエリを実行させ、-qおよび-oオプションを使用して結果をファイルに送信することができます。
mongoexport -h mongo.dev.priv -d models -c profiles -q '{ $query : { _id : "MRD461000" } }' -o MRD_Series1.json
上記のヒットは、モデルデータベースのプロファイルコレクションをクエリして、JSONドキュメントで_id="MRD641000"を取得します。私のために働きます。
これを使って
mongo db_name --username user --password password < query1.js >> result.txt
これを試してください-クエリのデータを含むjsonファイルを返します。変更することができ.json
ます.txt
。
mongoexport --db products --collection clicks --query '{"createdInt":{$gte:20190101}, "clientId":"123", "country":"ES"}' --out clicks-2019.json
Peshkiraの回答で実際のdbである必要があるdbを見逃したので、シェル内の1つのライナーの一般的な構文を次に示します(パスワードがないと仮定)。
mongo <host>:<db name> --eval "var x = <db name>.<collection name>.<query>; while(x.hasNext()) { printjson( x.next() ) }" >> out.txt
MacとGoogleクラウドUbuntu15の両方でMongo3+を使用してテストしました。
MongoDB Compassをインストールすると、クエリ結果をJson/CSVファイルにエクスポートするツールが追加されます。
mongoexport --host 127.0.0.1 --port 27017 --username youruser -p yourpass \
-d yourDatabaseName -c collectionName --type csv \
--fields field1,field2 -q '{"field1" : 1495730914381}' \
--out report.csv
mongoexport --db db_name --collection collection_name --csv --out file_name.csv -f field1、field2、field3