MongoDB(Java)插入已插入的文档

时间:2018-02-02 15:24:50

标签: java mongodb

我的java代码出了问题。我在创建之前检查用户是否已经存在。但这似乎不起作用。我登录到mongo shell并检查文档是否已创建。该文件已成功添加。

这是我的班级。无效的方法是createMyTrazUser():

public class MyTrazUser {


String name;
Player player;
List<World> worldList = new ArrayList<World>();

public MyTrazUser(String name) {
    this.name = name;
    this.player = Bukkit.getPlayer(name);
}

public boolean hasPlot() {
    //Not finished
    return new File("/BuildEvent/" + getUUID() + ".yml").exists();
}

public UUID getUUID() {
    //We can do this request because the Fetcher class caches the uuid's for us.
    return UUIDFetcher.getUUID(this.name);
}

public String getName() {
    return name;
}

public Player getPlayer() {
    return player;
}

public ArrayList<String> getWorlds() {

    DBCursor playerFind = Bootstrap.getMongoManager().getPlayers().find(new BasicDBObject("UUID",getUUID()));
   DBObject found = playerFind.next();
   if(found == null) {
       System.out.println("Backend -> User not found! We do not create the user because there could be an error!");

   } else {
       return (ArrayList)found.get("Worlds");
   }
  return null;
}

public void createMyTrazUser() {

    String uuid = getUUID().toString();

    DBObject request = new BasicDBObject("UUID",getUUID());
    DBCursor cursor = Bootstrap.getMongoManager().getPlayers().find(request);

    if(!cursor.hasNext()) {
        System.out.println("Cursor next: " + cursor.next());
        List<String> playerWorlds = new ArrayList<String>(); //Player can't have any worlds at the creation so we will leave that null
        //Building up the Document
        DBObject playerRequest = new BasicDBObject("UUID",uuid)
                .append("Name", UUIDFetcher.getName(UUID.fromString(uuid)))
                .append("RegisterTimestamp",new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()))
                .append("Worlds",playerWorlds)
                .append("Logins",1);
        //And  flush!!!!
        Bootstrap.getMongoManager().getPlayers().insert(playerRequest);
        //We print the just created user to see if something went wrong.
        System.out.println("Backend -> Created user with the following entries: " +
                playerRequest.toString());

    } else {
        System.out.println("Backend -> User already exists. OK.");
        return;
    }

}

public DBObject getDocument() {
    DBCursor playerFind = Bootstrap.getMongoManager().getPlayers().find(new BasicDBObject("UUID",getUUID()));
    if(playerFind == null) {
        if(playerFind.hasNext()) {
            DBObject found = playerFind.next();
            if(found == null) {
                System.out.println("Backend -> User not found! We do not create the user because there could be an error!");
                return null;
            } else {
                return found;
            }
        }
        System.out.println("Backend -> Could not get request user info! Report!");
        return null;
    }
    System.out.println("Backend -> Could not get request user info! Report!");
    return null;
}

}

new MyTrazUser(player.getName())。createMyTrazUser();

我希望你能帮我解决我的代码

祝你好运

0 个答案:

没有答案