我正在使用“ Node.js MongoDB驱动程序API”,希望将数据库初始化脚本转换为NodeJS。
我无法find any admin commands(例如db.createRole()
,db.grantPrivilegesToRole()
)。这些功能是否存在于其他地方?还是我可以使用其他替代解决方法? (例如runCommand
)
这是完整的代码段。
db_test.js
const MongoClient = require('mongodb').MongoClient
MongoClient.connect('mongodb://admin:password@localhost:27017/admin')
.then(client => client.db('admin').admin())
.then(db => {
return db.createRole({
role: 'SOME_ROLE',
privileges: [],
roles: []
})
})
.then(() => {
console.log('Success!')
process.exit(0)
})
.catch(err => {
console.log('Error! - ' + err.message)
process.exit(99)
})
输出:
错误! -db.createRole不是函数
NodeJS库: "mongodb": "3.1.4"
Docker服务器: image: mongo:3.4.2
免责声明:我也在GoogleGroups中问过这个问题。
答案 0 :(得分:1)
db.createRole
不是函数。尝试这样做:
db.command( { createRole: 'SOME_ROLE', privileges: [], roles: [] } )
答案 1 :(得分:0)
您遇到了错误,因为未在此行中定义db:.then(dbAdmin => db.createRole(...))
尝试这样:
MongoClient.connect('mongodb://admin:password@localhost:27017/admin',(err,db) =>{
if (err) return console.log(err);
db.createRole(...)
});