Index bereits vorhanden ist mit verschiedenen Optionen Fehler bei der Verwendung von createIndex() in der aktuellen MongoDB-java-Treiber
So, ich bin Upgrade der MongoDB-java-Treiber zu 2.12.4 wo die ensureIndex()
Methode ist veraltet. Ich bin stattdessen mit dem createIndex()
Methode, die von den docs scheint wie für funciton ähnlich wie ensureIndex()
. Jedoch, wenn ich diese Methode in der Produktion, bekomme ich die folgende Fehler -
{ "serverUsed" : "X.X.X.X" , "ok" : 0.0 , "errmsg" : "Index with name: <index_name> already exists with different options" , "code" : 85}
Warum geschieht dies? Könnte mir jemand helfen mit diesem?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, Ihre aktuellen Indizes, bevor Sie die neue.
Wenn Sie sich sorgen um Ausfallzeiten in der Produktion usw für diese Indizes könnten Sie:
mit einem anderen Namen.
Wird Shaver ' s Antwort ist sehr gut, allerdings nicht wirklich gegen das Problem der gravetii wird hervorgehoben.
createIndex
wird mit diesem Fehler fehlschlagen, wenn Sie versuchen, einen index erstellen, der auf die selben Felder, mit der gleichen Reihenfolge, aber mit unterschiedlichen Optionen. Dies ist, weil die Indizes Optionen dazu führen, dass der index sehr unterschiedliche Eigenschaften. Dies wird offensichtlich, wenn man bedenkt, ein index mit denunique
Flagge.Wenn Sie anrufen
createIndex
mit den gleichen Feldern, die gleiche Reihenfolge und die gleichen Optionen, es wird sich Verhalten, als Sie erwarten; keine änderung der Auflistung der Indizes, und es wird nicht werfen eine Ausnahme.