如何通过Node.js Mongodb驱动程序API将x.509证书主体作为用户添加到Mongodb 3.4中?

如何通过Node.js Mongodb驱动程序API将x.509证书主体作为用户添加到Mongodb 3.4中?,node.js,mongodb,x509,Node.js,Mongodb,X509,我需要使用Node.js应用程序将用户添加到我的MongoDB 3.4副本集中,该应用程序已经具有Node.js MongoDB驱动程序API包 问题是:没有涵盖如何 有人知道怎么做吗?换句话说,我需要一个Node.js机制/API,我可以使用它来执行下面的mongodb命令: mongo --host mongo-node-0 use admin db.getSiblingDB("$external").runCommand( {createUser: "emailAddress=foo@ba

我需要使用Node.js应用程序将用户添加到我的MongoDB 3.4副本集中,该应用程序已经具有Node.js MongoDB驱动程序API包

问题是:没有涵盖如何

有人知道怎么做吗?换句话说,我需要一个Node.js机制/API,我可以使用它来执行下面的mongodb命令:

mongo --host mongo-node-0
use admin
db.getSiblingDB("$external").runCommand(
{createUser: "emailAddress=foo@bar.com,CN=admin,OU=Clients,O=FOO,L=Dublin,ST=Ireland,C=IE",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db:"admin" },
{ role: "clusterAdmin",  db: "admin" }
]})
在文档之后,在节点上,对MongoDB执行命令哈希。这使您可以访问服务器上通过API不可用的任何命令

command(selector[, options], callback)
    Arguments:  

        selector (object) – the command hash to send to the server, ex: {ping:1}.
        [options] (object) – additional options for the command.
        callback (function) – this will be called after executing this method. The command always return the whole result of the command as the second parameter.

    Returns:    

    null
因此,您可以尝试:

 var db = new Db('$external', new MongoServer('localhost', 27017));
 db.open(function(err, db) {
   if (err) {
     console.log(err);
   }

   db.command({
     createUser: "emailAddress=foo@bar.com,CN=admin,OU=Clients,O=FOO,L=Dublin,ST=Ireland,C=IE",
     roles: [
       { role: "userAdminAnyDatabase", db: "admin" },
       { role: "dbAdminAnyDatabase", db: "admin" },
       { role: "readWriteAnyDatabase", db:"admin" },
       { role: "clusterAdmin",  db: "admin" }
     ]}, function(err, result){
       if (err) {
         console.log(err);
       }
       console.log(result)

       db.close();
   });
 });

你试过什么吗?至少您可以尝试像
vardb=newdb(“$external”);db.command(..
etcHey Lucas,非常感谢!实际上我正在寻找x.509的本机addUser支持,但它似乎不存在。无论如何,您提供的正是我所需要的!我测试了您的代码,并在进行了一些修复后(请参阅版本),它工作得很好!再次感谢!嗨,再次编辑,因为看起来像最后的评论员(users/36938/taylan aydinli,users/488397/steve and users/2057091/aserre)只是在没有意识到当前源代码有bug的情况下拒绝了它,并且将无法工作。我再次发送了版本,其中的更正将完成此代码的工作。希望不会再次被拒绝:/