我对MongoDB非常陌生。我正在尝试通过Java驱动程序在MongoDB中为数据库创建用户。我正在使用mongo-java-driver 3.0.1版本。我在Google上搜索,但没有找到相关的答案。我看到mongo-java-driver 2.13.0中有直接方法,但在最新版本中已弃用。我试图使用以下代码创建用户,但出现异常。
代码:
MongoClient mongoClient = new MongoClient("127.0.0.1","27017");
MongoDatabase mongoDatabase = this.mongoClient
.getDatabase(doc);
BasicDBObject commandArguments = new BasicDBObject();
commandArguments.put("user", mongoDatabase.getName());
commandArguments.put("pwd", "Cip#erCloud@123");
String[] roles = { "readWrite" };
commandArguments.put("roles", roles);
BasicDBObject command = new BasicDBObject("createUser",
commandArguments.toString());
mongoDatabase.runCommand(command);
例外:
com.mongodb.MongoCommandException: Command failed with error 2: 'Must provide a 'pwd' field for all user documents, except those with '$external' as the user's source db' on server 127.0.0.1:27017.
The full response is { "ok" : 0.0, "errmsg" : "Must provide a 'pwd' field for all user documents, except those with '$external' as the user's source db", "code" : 2 }
这是我的问题:
注意:我正在使用JAVA库。
有人可以帮我吗?我留在这里。
谢谢与问候,阿马尔
您可以尝试使用以下方法来创建用户:
MongoClient mongo = new MongoClient("localhost", 27017);
MongoDatabase db = mongo.getDatabase("testDB");
Map<String, Object> commandArguments = new HashMap<>();
commandArguments.put("createUser", "dev");
commandArguments.put("pwd", "password123");
String[] roles = { "readWrite" };
commandArguments.put("roles", roles);
BasicDBObject command = new BasicDBObject(commandArguments);
db.runCommand(command);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句