Javascript use admin在MongoDB中不起作用
我必须将参数从shell脚本传递到mongojavascript 所以我试着说: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
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会话之外,不能用于其他任何东西。