Ich habe eine Datenbank mit Playerdaten, die einige bereits vorhandene Felder aus früheren Versionen des Programms enthält. Beispiel veraltetes Dokument:Aktualisieren von bereits vorhandenen Dokumenten im mongoDB java-Treiber, wenn Sie die Dokumentstruktur geändert haben
{
"playername": "foo"
}
sondern ein Dokument Spieler unter der neuen Version erzeugt würde wie folgt aussehen:
{
"playername": "bar",
"playercurrency": 20
}
das Problem ist, dass, wenn ich versuche, playercurrency
auf foo
abfragen erhalte ich eine Nullpointer weil playercurrency
nicht existiert für foo
. Ich möchte das Feld playercurrency
zu foo
hinzufügen, ohne andere Daten zu stören, die in foo
gespeichert werden könnten. Ich habe einige Code $exists
Beispiel versucht:
players.updateOne(new Document("playername", "foo"), new Document("$exists", new Document("playername", "")));
players.updateOne(new Document("playername", "foo"), new Document("$exists", new Document("playercurrency", 20)));
Mein Gedanke ist, dass es nur playercurrency
aktualisiert, weil es nicht existiert, und es wäre playername
allein lassen becuase es existiert. Ich benutze möglicherweise schrecklich falsch, und wenn ja, lass es mich wissen, weil dies eines meiner ersten MongoDB-Projekte ist und ich gerne so viel wie möglich lernen würde.
Sind bereits vorhandene Felder wie folgt: [{"Spielername": "foo"}, {"Spielername": "Bar"}, {"Spielername": "Teer"}]. Fragen Sie einfach ... –
Ich verstehe Ihre Frage nicht ... Ich denke, um 'foo' und' bar' zu klären sind ihre eigenen Dokumente, jedes hat andere Felder, weil eines auf einer alten Version generiert wurde und das andere generiert wurde auf der neueren Version. –