运行--eval mongodb命令时出错

时间:2015-02-16 11:00:31

标签: javascript mongodb

我尝试运行javascript(js)文件来获取shard的配置服务器信息,它在mongo shell中运行正常,但由于结果太大而无法在命令提示符下进行分析,我尝试使用下面提到的命令将输出保存在文件中

F:\git\bits-n-pieces\scripts> mongo --shell wts.js aggutil.js \
--eval "printjson(wts('config192'))" > out.log 
  MongoDB shell version: 2.6.4 connecting to: test 
  type "help" for help 
  2015-02-16T15:48:34.088+0530 
  ReferenceError: wts is not defined

由于我正在尝试同时加载和运行js函数,它没有运行,任何人都可以提供运行js函数的方法并将输出保存到文件。

1 个答案:

答案 0 :(得分:0)

您不希望--shell使用重定向>,因为这会将shell重定向到stdout,程序似乎会挂起。

mongo test.js test1.js --eval "var t = 900" > out.txt

另外,您的javascript文件看起来有问题,因为它抱怨wts未定义。您是否准确粘贴了运行该命令时看到的内容?如果我使用像你这样的命令

mongo --shell test.js test1.js --eval "var t = 900" > out.txt

由于stdout重定向,我根本没有输出。如果我拿出>,我就会

MongoDB shell version: 2.6.6
connecting to: test
type "help" for help
loading file: test.js
loading file: test1.js
> 

你在运行什么版本的shell?