0

データベースに既に格納されているレコードのフィールドを更新したいと考えています。どうすればそれを達成できますか?これまでに遭遇したすべての例は、Python/Php または古いバージョンの MongoDB (Java) にあり、API は最新ではありません。

基本的に、特定の userId を持つオブジェクトをメモリにロードし、そのユーザー名の値を変更したいと考えています。(以下のコードを参照してください)

どうもありがとう

編集

これまでのところ、次のコードがあります。

public class UserDAO {
    MongoOperations mongoDb;

    public UserDAO(){
        mongoDb = MongoDBInstanceFactory.getMongoDBinstance();
    }

    public User getUserByUsername(String username){
        Query searchUserQuery = new Query(Criteria.where("username").is(username));
        return mongoDb.findOne(searchUserQuery, User.class);
    }

    public User getUserById(String id){
        Query searchUserQuery = new Query(Criteria.where("id").is(id));
        return mongoDb.findOne(searchUserQuery, User.class);
    }

    public User addUser(String username){
        mongoDb.save(new User(username));
        return getUserByUsername(username);
    }
}

   @Document(collection = "users")
   public class User {

    public User(String username) {
        this.username = username;
    }

    public User() {
    }
    @Id
    private String id;
    private String username;

    //getter, setter, toString, Constructors
    /**
     * @return the id
     */
    public String getId() {
        return id;
    }

    /**
     * @return the username
     */
    public String getUsername() {
        return username;
    }
}

@RequestMapping(value = "/registerUser")
public @ResponseBody
String registerUser(@RequestParam(value = "username") String username, HttpServletResponse response) throws IOException {

sb = new StringBuilder();

user = userDao.getUserByUsername(username);

if (user == null) {
    user = userDao.addUser(username);
    userQueryPhaseDao.addUserQueryPhase(user.getId(), null, "0");
    sb.append("1|").append(user.getId());
    response.addCookie(new Cookie("userId", user.getId()));
} else {
    sb.append("0|User with that handle already exists!");
}

return sb.toString();
}

お時間をいただきありがとうございます

4

1 に答える 1