现在,我正在使用mongodump
和bsondump
从MongoDB中获取文档,然后将正则表达式应用于文档以获取我想要的值。我真正想要的只是一个平面文件,例如,users
集合中每个用户的电子邮件地址,在一个平面文件中,然后我可以使用grep
,uniq
进行操作,等
在MySQL中,它是:
mysql < query.sql > outfile.txt
query.sql 文件类似于:
SELECT email FROM users;
但是在Mongo中,当我传入一个.js文件时,我仍然不确定如何输出单个值。
mongo --db test < query.js > outfile.txt
query.js 对于用户集合会是什么?
答案 0 :(得分:1)
您可以使用forEach通过JavaScript函数运行每个结果,并以您想要的格式打印一行:
db.users.find().forEach(function(user) {
print(user.email);
});
--quiet
命令行选项对于从输出中删除标题行也很有用。
答案 1 :(得分:0)
此问题已经重复here
摘要
mongo 127.0.0.1/db --eval "var c = db.collection.find(); while(c.hasNext())
{printjson(c.next())}" >> test.txt