文件写入操作在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