文件写入操作在mongo脚本?

这是可能的写入查询结果从mongo js脚本的文件。 我搜查了很多,但我没有find任何解决scheme。

例如: –

cursor = db.users.find(); while(cursor.hasNext()) { cursor.next(); // writing the cursor output to file ????<br/> } 

您可以使用打印然后redirect输出:

的script.js:

 cursor = db.users.find(); while(cursor.hasNext()){ printjson(cursor.next()); } 

然后运行该脚本并将输出redirect到一个文件:

 mongo --quiet script.js > result.txt 

http://www.mongodb.org/display/DOCS/Scripting+the+shell段落“脚本和交互/打印之间的区别”。;

./mongo server.com/mydb –quiet –eval“db.users.find()。forEach(printjson);” > 1.txt

您可以使用forEach()跳过while循环:

 db.users.find().forEach(printjson); 

将一个Mongo驱动程序用于通用语言(例如Python,Ruby,Java等),并将结果以可以使用的格式(如CSV,等等。)?

更新:根据mongodump的文档,你可以用一个查询导出一个集合:

 $ ./mongodump --db blog --collection posts -q '{"created_at" : { "$gte" : {"$date" : 1293868800000}, "$lt" : {"$date" : 1296460800000} } }' 

但是,您需要将该集合导回MongoDB以对其进行操作,或者使用mongoexport使用与mongodump相同的查询标志( -q )将其导出为JSON或CSV。

对于不同的你必须创buildscript.js文件的内容:

 mongo = new Mongo("localhost"); doctor = mongo.getDB("doctor"); users = doctor.getCollection("users"); cities = users.distinct("address.city"); printjson(cities); 

然后在控制台运行:

 mongo --quiet script.js > result.txt