想用shell写个操作mongo的脚本,但一直没想起来怎么写

2012-09-19 02:02:06 +08:00
 gavingeng
一开始就想到了expect,但好像不适合,就没再继续!
java版本操作基本也写好了,但非常纠结的想用shell来做操作mongo,就是执行mongo shell命令,如db.foo.find(),db.foo.remove({date:"2012-09-18"})的操作,想了半天还是没想出来,不知各位是如何处理的

---------
P.S.
在发帖时,突然想起来了python,哈哈......
9645 次点击
所在节点    MongoDB
3 条回复
ElmerZhang
2012-09-19 11:15:07 +08:00
mongo [options] [db address] [file names (ending in .js)]
比如
mongo --host 127.0.0.1:27017 testdb remove.js
remove.js内容:
db.foo.remove({date:"2012-09-18"})
gavingeng
2012-09-19 13:33:36 +08:00
@ElmerZhang
THX,谢了!
那就好办了,批量生成js,再来执行mongo

P.S.
我用python又写了遍
ri0day
2012-09-19 14:04:58 +08:00
/data0/mongodb/bin/mongo 127.0.0.1:27015/admin /data0/mongodb/backup.js 1>>/data0/cron_backup.log 2>>&1

cat /data0/mongodb/backup.js
base = "/data0/backup/"
function showdate(n) {
var uom = new Date(new Date()-0+n*86400000);
uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate();
return uom;
}
db.runCommand({fsync:1,lock:1})
runProgram("cp","-ar","/data0/mongodb/data",base+showdate(0))
db.$cmd.sys.unlock.findOne()
removeFile(base+showdate(-8))

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/48022

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX