如何将mongo命令导入平面文件

时间:2012-10-10 16:20:21

标签: mongodb mongodb-java mongodb-query

如何将MongoDB命令的结果导出到平面文件

例如,如果我要将db.collectionname.find()放入平面文件中。

我试过db.collectionname.find() >> "test.txt"似乎没有用。

8 个答案:

答案 0 :(得分:70)

您可以从命令行

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

假设你有一个名为'db'的数据库在localhost上运行,一个名为'collection'的集合,这将把所有记录导出到一个名为test.txt的文件

如果您要执行更长的脚本,还可以创建script.js文件 并且只需使用

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

我希望这会有所帮助

答案 1 :(得分:19)

我知道无法直接从mongo shell执行此操作,但您可以使用mongoexport执行查询并将结果发送到带有-q和-o选项的文件:

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

以上命中查询模型数据库中的配置文件集合,获取_id =“MRD641000”的JSON文档。适合我。

答案 2 :(得分:7)

使用此

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

答案 3 :(得分:1)

在Peshkira的答案中错过了需要成为实际数据库的数据库,这里是shell中一个内联的一般语法(假设没有密码):

mongo <host>:<db name> --eval "var x = <db name>.<collection name>.<query>; while(x.hasNext()) { printjson( x.next() ) }" >> out.txt

我在Mac和谷歌云Ubuntu 15上使用Mongo 3 +进行了测试。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

尝试此操作-返回带有查询数据的json文件,您可以将.json更改为.txt等。

mongoexport --db产品--collect点击次数--query'{“ createdInt”:{$ gte:20190101},“ clientId”:“ 123”,“ country”:“ ES”}''–out clicks- 2019.json

答案 6 :(得分:0)

安装MongoDB Compass,然后它将有一个将查询结果导出到Json / CSV文件的工具。

答案 7 :(得分:-1)

mongoexport --db db_name --collection collection_name --csv --out file_name.csv -f field1,field2,field3