MongoException: Index name: code ist bereits vorhanden mit verschiedenen Optionen
Ich habe eine mongodb
Sammlung term
mit der folgenden Struktur
{
"_id" : "00002c34-a4ca-42ee-b242-e9bab8e3a01f",
"terminologyClass" : "USER",
"code" : "X67",
"terminology" : "some term related notes",
"notes" : "some notes"
}
und eine java-Klasse, die der Begriff Kollektion als Term.java
@Document
public class Term{
@Id
protected String termId;
@Indexed
protected String terminologyClass;
@Indexed(unique=true)
protected String code;
@Indexed
protected String terminology;
protected String notes;
//getters & setters
}
Habe ich viele Dokumente in term
Sammlung. Jetzt bin ich Hinzugefügt ein neues Feld zu Term.java
als
@Indexed
protected String status;
Nach dem hinzufügen Feld status
zu Term.java
, die beim einfügen einen neuen Begriff zu term
Sammlung bin ich immer einer der exceptoin :
com.mongodb.MongoException: Index name: code ist bereits vorhanden mit
verschiedene Optionen
Ich bin mit MongoDB version : 2.6.5-und spring-data-mongodb version : 1.3.2
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bereits einen index auf, der Kollektion mit dem gleichen Namen, aber mit einer anderen definition. Meine Vermutung ist, dass die aktuelle code-index ist nicht eindeutig
versuchen:
db.Term.getIndexes()
Wenn dies tatsächlich der Fall ist (Sie haben einen nicht eindeutigen index über code-Feld), Problem:
db.Term.dropIndex("code_1")
(ersetzen mit dem code-Feld index-name).
Nächste mal, wenn Sie Booten Sie Ihren Antrag, es soll an die Arbeit in Ordnung.
Alternativ entfernen Sie das Attribut unique von der
@Indexed
annotation (wenn Sie nicht, außer es einzigartig zu sein).haben Sie versucht, löschen Sie Ihre Sammlung und versuchen Sie es erneut? in der Regel gibt es viele Konflikte, während die Anwendung neuer java-mapping zu bestehenden mongodb collection