我目前正在创建一个与MongoDB连接的Java应用程序,并执行各种数据库操作,例如从应用程序中查找,插入和更新。
我创建了一个对话框表单,用户可以使用read和readwrite角色添加多个用户(using method addUser(String username, char[] passwd, boolean readOnly) )
。我希望能够通过单击此对话框中的按钮列出所有用户,然后右键单击特定用户以便能够删除用户。 (using method removeUser(String username))
。
问题是,在网上进行了几次研究后,我找不到任何提供此类方法的库(返回所有用户),或者我不知道如何获得此结果。
这是一个赋值,但它不是一个特定的问题,因为赋值与数据库操作更相关。但是我想添加这个功能,因为它会非常酷。任何帮助是极大的赞赏。
答案 0 :(得分:1)
所有Mongo用户帐户都列在system.users
数据库的集合admin
中。
有关数据格式,请参阅http://docs.mongodb.org/manual/reference/system-users-collection/。
或者,您可以使用命令usersInfo
:
BasicDBObject dbStats = new BasicDBObject("usersInfo", 1);
CommandResult command = db.command(dbStats);
System.out.println(command.get("users"));
BasicDBList users = (BasicDBList) command.get("users");
for (Object u : users) {
String username = (String) ((BasicDBObject) u).get("user");
System.out.println(username);
}
答案 1 :(得分:0)
我也遇到了这个问题。因为第一个答案(罗伯特的答案)很旧,所以我给出了新答案;
首先,这是我的Maven信息:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.8.0</version>
</dependency>
第二,我使用了JDK的runCommand,您也可以检查API文档。这是理论链接:link,最重要的信息: link
最后,我的代码:
Document dbStats = new Document("usersInfo", 1);
Document command = db.runCommand(dbStats);
ArrayList<Document> users = (ArrayList<Document>) command.get("users");
System.out.println(users);