Javascript use admin在MongoDB中不起作用

Javascript use admin在MongoDB中不起作用,javascript,mongodb,Javascript,Mongodb,我必须将参数从shell脚本传递到mongojavascript 所以我试着说: mongo --eval "var ADMIN_USER_NAME='$ADMIN_NAME', ADMIN_USER_PASSWORD='$ADMIN_PASSWORD'" insertusers.js 和insertusers.js包含: cat insertusers.js use admin db.addUser( { user: ADMIN_USER_NAME, pwd: ADM

我必须将参数从shell脚本传递到mongojavascript

所以我试着说:

mongo --eval "var ADMIN_USER_NAME='$ADMIN_NAME', ADMIN_USER_PASSWORD='$ADMIN_PASSWORD'" insertusers.js
insertusers.js
包含:

cat insertusers.js

use admin

db.addUser( { user: ADMIN_USER_NAME,
          pwd: ADMIN_USER_PASSWORD,
          roles: [ "userAdminAnyDatabase" ] } )
然而,我得到

mongo --eval "var ADMIN_USER_NAME='$ADMIN_NAME', ADMIN_USER_PASSWORD='$ADMIN_PASSWORD'"     insertusers.js
MongoDB shell version: 2.4.9
connecting to: test
Fri Apr 11 21:30:34.791 SyntaxError: Unexpected identifier at insertusers.js:5
failed to load: insertusers.js
我不明白为什么它会失败。同样的事情也可以从javascript schell中运行,这是可行的

每当它点击
use admin
行时,就会显示
SyntaxError:Unexpected identifier

“use admin”命令可能是您的问题,因为它涉及更改一些用户空间变量

试试下面的方法

db.getSiblingDB("admin").addUser( { user: ADMIN_USER_NAME,
      pwd: ADMIN_USER_PASSWORD,
      roles: [ "userAdminAnyDatabase" ] } )
“使用…”之类的内容不是有效的javascript,不能在javascript文件中使用。它们是mongo REPL shell的一部分,除了交互式shell会话之外,不能用于其他任何东西。