怎么可以做到在nodeJS 的程序中运行 mongoDB的一些JS 脚本,或者说是运行一些mongo Shell 的东西,类似于设置一些定时任务什么的。谢谢大神指导
回复 (20)
P
var child_process = require('child_process');
var command = 'mongo --eval "JSON.stringify(db.serverStatus())"';
child_process.exec(command, function (err, stdout, stderr) {
console.log(stdout);
});
1
我怎么看不明白
C
引用 pfcoder
@pfcoder 你好,如果我要直接运行‘show dbs’这样的命令,前提是先运行‘mongo’命令要怎么写?
C
引用 1340641314我怎么看不明白
@1340641314 其实就是想不用driver直接运行mongodb命令差不多
P
引用 chris9311@pfcoder 你好,如果我要直接运行‘show dbs’这样的命令,前提是先运行‘mongo’命令要怎么写?
@chris9311 mongo --eval 'db.adminCommand("listDatabases")'
1
引用 pfcoder@chris9311 mongo eval 'db.adminCommand("listDatabases")'
@pfcoder 没看懂啥意思,eval看懂了
P
引用 1340641314@pfcoder 没看懂啥意思,eval看懂了
@1340641314 相当于nodejs程序中执行外部shell脚本,起一个独立进程执行
1
引用 pfcoder@1340641314 相当于nodejs程序中执行外部shell脚本,起一个独立进程执行
@pfcoder 原来如此,学习到了
C
引用 pfcoder@chris9311 mongo eval 'db.adminCommand("listDatabases")'
@pfcoder 只能用eval吗?我想先把mongo先运行再执行其他可以吗?
W
或者用下mongodb这个包呢~我项目中基本都是用这个操作mongo的
P
引用 chris9311@pfcoder 只能用eval吗?我想先把mongo先运行再执行其他可以吗?
@chris9311 不明白为什么一定要先运行mongo, 运行mongo是进入交互式mongo shell,这个在程序中有什么用呢?
C
引用 wangnan0610或者用下mongodb这个包呢 我项目中基本都是用这个操作mongo的
@wangnan0610 mongodb这个模块有运行js文件的api 吗?
C
引用 pfcoder@chris9311 不明白为什么一定要先运行mongo, 运行mongo是进入交互式mongo shell,这个在程序中有什么用呢?
@pfcoder 因为我会有用户的验证,要每次都把-u -p 加上去。。
P
引用 chris9311@pfcoder 因为我会有用户的验证,要每次都把 u p 加上去。。
@chris9311 还是看你想执行什么样的JS任务,如果能利用driver完成就没必要非得通过mongo shell了
A
如果不是直接调用脚本的话,就用 mongo 相关的 driver 吧
C
Z
@chris9311 还在吗?
C
引用 zhuqiao@chris9311 还在吗?
@zhuqiao ??
C
引用 zhuqiao@chris9311 问题解决了吗?想跟你请教下呢
@zhuqiao 并没有,我在看driver有没有这方面的api
Z
引用 chris9311@zhuqiao ??
@chris9311 问题解决了吗?想跟你请教下呢
参与回复
登录后即可参与回复。登录