如何获得mongo命令导致一个平面文件

如何将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”的集合将会把所有logging导出到一个名为test.txt的文件中

如果你想要执行更长的脚本,你也可以创build一个script.js文件并使用

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

我希望这有帮助

我知道没有办法直接从mongo shell那里做,但是你可以让mongoexport执行查询并使用-q和-o选项将结果发送到一个文件:

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

上述命中查询模型数据库中的configuration文件集合,获取_id =“MRD641000”的JSON文档。 为我工作。

用这个

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

错过了需要成为Peshkira答案中的实际分贝的分贝,这里是一个在shell中的单线程的一般语法(假设没有密码):

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

我使用Mongo 3+在我的Mac和Google云Ubuntu 15上进行了testing。

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