怎么可以做到在nodeJS 的程序中运行 mongoDB的一些JS 脚本,或者说是运行一些mongo Shell 的东西,类似于设置一些定时任务什么的。谢谢大神指导
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); });
我怎么看不明白
@pfcoder 你好,如果我要直接运行‘show dbs’这样的命令,前提是先运行‘mongo’命令要怎么写?
@1340641314 其实就是想不用driver直接运行mongodb命令差不多
@chris9311 mongo --eval 'db.adminCommand("listDatabases")'
mongo --eval 'db.adminCommand("listDatabases")'
@pfcoder 没看懂啥意思,eval看懂了
@1340641314 相当于nodejs程序中执行外部shell脚本,起一个独立进程执行
@pfcoder 原来如此,学习到了
@pfcoder 只能用eval吗?我想先把mongo先运行再执行其他可以吗?
或者用下mongodb这个包呢~我项目中基本都是用这个操作mongo的
@chris9311 不明白为什么一定要先运行mongo, 运行mongo是进入交互式mongo shell,这个在程序中有什么用呢?
@wangnan0610 mongodb这个模块有运行js文件的api 吗?
@pfcoder 因为我会有用户的验证,要每次都把-u -p 加上去。。
@chris9311 还是看你想执行什么样的JS任务,如果能利用driver完成就没必要非得通过mongo shell了
如果不是直接调用脚本的话,就用 mongo 相关的 driver 吧
@pfcoder 明白了,谢谢。
@chris9311 还在吗?