如何在java中更新MongoDB的密码

如何在java中更新MongoDB的密码,java,mongodb,Java,Mongodb,和我一样有一个困难 试图从代码--> 如果我想从我使用的表中读取数据--> 我试图编写更新代码,比如--> 但是从上面的查询中,如果我给出如下输入 { “用户名”:“管理员”, “密码”:“密码1” } 从上面的输入中,它正在更新密码,但如果我更改用户名,则它正在创建新用户。 我没有;我找不到合适的解决办法。 请帮帮我。这看起来不像您在使用mongo用户,不是吗?这只是一个名为user的类,它有一个密码文件(请不要以纯文本形式存储密码)。如果要更新现有用户,为什么要使用insert(…)而不是u

和我一样有一个困难 试图从代码-->

如果我想从我使用的表中读取数据-->

我试图编写更新代码,比如-->

但是从上面的查询中,如果我给出如下输入 { “用户名”:“管理员”, “密码”:“密码1” } 从上面的输入中,它正在更新密码,但如果我更改用户名,则它正在创建新用户。 我没有;我找不到合适的解决办法。
请帮帮我。

这看起来不像您在使用mongo用户,不是吗?这只是一个名为user的类,它有一个密码文件(请不要以纯文本形式存储密码)。如果要更新现有用户,为什么要使用
insert(…)
而不是
update()
?@Robert insert()只是我得到的临时名称。我会将其重命名为updateThanks以获得您的答案。但是:一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。
// create user
db.createRole({role:'sysadmin',roles:[], privileges:[{resource:{anyResource:true},actions:['anyAction']}]})
db.createUser({user: "root",  pwd: "abcd1234",  roles: [ { role: "sysadmin", db: "admin" } ] } );
db.system.users.find();

// modify passowrd
db.updateUser("root",  {pwd: "abcde12345"} );
db.system.users.find();
public static User findByUsernameAndPassword(String username, String password) {
    return users().findOne("{username: #, shaPassword: #}", username.toLowerCase(), getSha512(password)).as(User.class);
}
public Update update() {
  return users().update("{shaPassword: #}",getPassword(password)); 
}
// create user
db.createRole({role:'sysadmin',roles:[], privileges:[{resource:{anyResource:true},actions:['anyAction']}]})
db.createUser({user: "root",  pwd: "abcd1234",  roles: [ { role: "sysadmin", db: "admin" } ] } );
db.system.users.find();

// modify passowrd
db.updateUser("root",  {pwd: "abcde12345"} );
db.system.users.find();