通过bash运行mongo shell命令时出错

时间:2016-09-20 13:46:45

标签: bash mongodb

我正在使用{10} mongo版本2.0.4

的Solaris 10
{root} #: ./mongo --shell --eval 'use db'
MongoDB shell version: 2.0.4
fork() available!
connecting to: test
type "help" for help
Tue Sep 20 14:44:22 compile error: (shell eval):1 SyntaxError: Unexpected identifier
use db
    ^^

{root} #:

我编写了一个脚本,我试图在db中插入一组文件:

#!/bin/bash
cd /test2/sam
for f in *.bin.gz do 
    cd /opt/csw/bin
    ./mongofiles -l /test2/sam/$f -d mahi put $f SUBSTRING=$(echo $f| cut -c11-19) ./mongo << EOF 
    use mahi "db.fs.files.update({\ $filename: \"$f" },{ \$set: {"ROP": \"$SUBSTRING"}})"
EOF
done

mahi是数据库名称;执行此操作时,我收到编译错误:

  

Tue Sep 20 15:05:40编译错误:(shell):1语法错误:意外的标记} _ROOT_MO_R,MeContext = CTL01008_celltracefile_3-1378091167645。bin.gz“},{$ set:

感谢任何帮助我解决问题的线索。

1 个答案:

答案 0 :(得分:0)

删除--shell

来自docs

  

- 壳。与JavaScript文件(即)一起使用,在运行JavaScript

后继续在mongoshell中

另外, --eval仅适用于jscript,不适用于Mongo shell命令。在cmd行上指定db。