如何将MongoDB命令的结果导出到平面文件
例如,如果我要将db.collectionname.find()
放入平面文件中。
我试过db.collectionname.find() >> "test.txt"
似乎没有用。
答案 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