是否可以将查询结果写入mongo js脚本中的文件.我搜索了很多,但我找不到任何解决方案.
例如: -
cursor = db.users.find();
while(cursor.hasNext()) {
cursor.next();
// writing the cursor output to file ????<br/>
}
Run Code Online (Sandbox Code Playgroud)
mil*_*lan 80
您可以使用print然后重定向输出:
的script.js:
cursor = db.users.find();
while(cursor.hasNext()){
printjson(cursor.next());
}
Run Code Online (Sandbox Code Playgroud)
然后运行脚本并将输出重定向到文件:
mongo --quiet script.js > result.txt
Run Code Online (Sandbox Code Playgroud)
Rom*_*nov 22
http://www.mongodb.org/display/DOCS/Scripting+the+shell段落"脚本和交互/打印之间的差异".
./mongo server.com/mydb --quiet --eval"db.users.find().forEach(printjson);" > 1.txt
Oub*_*ine 14
您可以使用forEach()以下命令跳过while循环:
db.users.find().forEach(printjson);
Run Code Online (Sandbox Code Playgroud)
每当我需要将mongo查询的结果写入本地文件时,通常都会使用该writeFile(pathToFile, stringContents)函数。
示例:假设您很快需要查找所有注册用户的电子邮件,并将其发送给市场部门的好友Jim。
$ mongo mongodb://my-fancy-mongo-server --ssl -u fancy_username -p fancy_password
successfully connected to my-fancy-mongo-server!
> emails = db.users.distinct('email_address')
> writeFile("jims_email_list.json", tojson(emails))
Run Code Online (Sandbox Code Playgroud)
或者,如果Jim期望是CSV文件,则
$ mongo mongodb://my-fancy-mongo-server --ssl -u fancy_username -p fancy_password
successfully connected to my-fancy-mongo-server!
> emails = db.users.distinct('email_address')
> writeFile("jims_email_list.csv", emails.join("\n"))
Run Code Online (Sandbox Code Playgroud)
您现在可以向Jim发送电子邮件列表并保存一天!
要注意有关该writeFile功能的重要事项: