CNode

nodeJS 怎么运行 mongoDB 的JS脚本

问答
Cchris9311发布于11 年前最后回复11 年前20 回复8179 浏览0 收藏

怎么可以做到在nodeJS 的程序中运行 mongoDB的一些JS 脚本,或者说是运行一些mongo Shell 的东西,类似于设置一些定时任务什么的。谢谢大神指导

查看回复

回复 (20)

P
pfcoder#1·11 年前
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
1340641314#2·11 年前

我怎么看不明白

C
chris9311#3·11 年前
引用 pfcoder

@pfcoder 你好,如果我要直接运行‘show dbs’这样的命令,前提是先运行‘mongo’命令要怎么写?

C
chris9311#4·11 年前
引用 1340641314我怎么看不明白

@1340641314 其实就是想不用driver直接运行mongodb命令差不多

1
1340641314#6·11 年前
引用 pfcoder@chris9311 mongo eval 'db.adminCommand("listDatabases")'

@pfcoder 没看懂啥意思,eval看懂了

P
pfcoder#7·11 年前
引用 1340641314@pfcoder 没看懂啥意思,eval看懂了

@1340641314 相当于nodejs程序中执行外部shell脚本,起一个独立进程执行

C
chris9311#9·11 年前
引用 pfcoder@chris9311 mongo eval 'db.adminCommand("listDatabases")'

@pfcoder 只能用eval吗?我想先把mongo先运行再执行其他可以吗?

W
wangnan0610#10·11 年前

或者用下mongodb这个包呢~我项目中基本都是用这个操作mongo的

P
pfcoder#11·11 年前
引用 chris9311@pfcoder 只能用eval吗?我想先把mongo先运行再执行其他可以吗?

@chris9311 不明白为什么一定要先运行mongo, 运行mongo是进入交互式mongo shell,这个在程序中有什么用呢?

C
chris9311#12·11 年前
引用 wangnan0610或者用下mongodb这个包呢 我项目中基本都是用这个操作mongo的

@wangnan0610 mongodb这个模块有运行js文件的api 吗?

C
chris9311#13·11 年前
P
pfcoder#14·11 年前
引用 chris9311@pfcoder 因为我会有用户的验证,要每次都把 u p 加上去。。

@chris9311 还是看你想执行什么样的JS任务,如果能利用driver完成就没必要非得通过mongo shell了

A
alsotang#15·11 年前

如果不是直接调用脚本的话,就用 mongo 相关的 driver 吧

Z
zhuqiao#17·11 年前

@chris9311 还在吗?

C
chris9311#18·11 年前
引用 zhuqiao@chris9311 还在吗?

@zhuqiao ??

C
chris9311#19·11 年前
引用 zhuqiao@chris9311 问题解决了吗?想跟你请教下呢

@zhuqiao 并没有,我在看driver有没有这方面的api

Z
zhuqiao#20·11 年前
引用 chris9311@zhuqiao ??

@chris9311 问题解决了吗?想跟你请教下呢

参与回复
登录后即可参与回复。登录