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

QVS*_*VSJ 44 mongodb mongodb-java mongodb-query

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

例如,如果我要db.collectionname.find()进入平面文件.

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

pes*_*ira 75

您可以从命令行尝试以下操作

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

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

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

mongo 127.0.0.1/db script.js >> test.txt
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助

  • 这是正确的,我首先使用了这个答案,但是在我执行$ not查询并将引用的字段发送到查询时遇到了问题.如果没有$ not,我可以逃脱报价,但是我没有能够让它工作.在这种情况下,整个eval周围的单引号而不是双引号可能会更好. (3认同)

Bob*_*har 20

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

mongoexport -h mongo.dev.priv -d models -c profiles -q '{ $query : { _id : "MRD461000" } }' -o MRD_Series1.json
Run Code Online (Sandbox Code Playgroud)

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


小智 7

用这个

mongo db_name --username user --password password < query1.js >> result.txt
Run Code Online (Sandbox Code Playgroud)