web-dev-qa-db-ja.com

mongoコマンドの結果をフラットファイルに取得する方法

MongoDBコマンドの結果をフラットファイルにエクスポートする方法

たとえば、db.collectionname.find()をフラットファイルに入れる場合です。

db.collectionname.find() >> "test.txt"を試してみましたが機能しないようです。

44
QVSJ

コマンドラインから次を試すことができます

mongo 127.0.0.1/db --eval "var c = db.collection.find(); while(c.hasNext()) {printjson(c.next())}" >> test.txt

localhostで実行されている「db」というデータベースと「collection」というコレクションがあると仮定すると、すべてのレコードがtest.txtというファイルにエクスポートされます

より長いスクリプトを実行したい場合は、script.jsファイルを作成して使用することもできます

mongo 127.0.0.1/db script.js >> test.txt

これが役立つことを願っています

74
peshkira

Mongoシェルから直接これを行う方法はありませんが、mongoexportでクエリを実行し、-qオプションと-oオプションを使用して結果をファイルに送信できます。

mongoexport -h mongo.dev.priv -d models -c profiles -q '{ $query : { _id : "MRD461000" } }' -o MRD_Series1.json

上記のヒットは、_id = "MRD641000"のJSONドキュメントを取得するモデルデータベースのプロファイルコレクションを照会します。私のために働く。

19
Bob Kuhar

これを使って

mongo db_name --username user --password password < query1.js >> result.txt
7
Piotr Fryga

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クラウドUbuntu 15の両方でMongo 3+を使用してテストしました。

1
goggelj

これを試してください-クエリのデータを含むjsonファイルを返します。txtなどの.jsonを変更できます。

mongoexport --db products --collection clicks --query '{"createdInt":{$ gte:20190101}、 "clientId": "123"、 "country": "ES"}' --out clicks-2019.json

0
amic
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
0
DarwinFernandez