51

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

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

我试过db.collectionname.find() >> "test.txt"似乎不起作用。

4

8 回答 8

83

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

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

我希望这有帮助

于 2012-10-10T16:33:43.640 回答
28

我不知道直接从 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 文档。为我工作。

于 2012-10-10T16:31:47.800 回答
8

用这个

mongo db_name --username user --password password < query1.js >> result.txt
于 2015-05-28T12:48:06.027 回答
3

试试这个 - 返回一个带有查询数据的 json 文件,您可以更改.jsonfor.txt和其他。

mongoexport --db products --collection clicks --query '{"createdInt":{$gte:20190101}, "clientId":"123", "country":"ES"}' --out clicks-2019.json
于 2019-01-17T09:42:33.513 回答
1

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

于 2020-06-11T14:48:42.450 回答
1

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

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

我在我的 Mac 和带有 Mongo 3+ 的谷歌云 Ubuntu 15 上测试了它。

于 2015-10-02T10:14:17.237 回答
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
于 2017-05-25T18:23:47.673 回答
-1

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

于 2016-08-22T18:48:46.603 回答