2016-04-22 14 views
0

Ich hatte eine Sammlung mit einem EmbedMany Attribut mit Strategie = set, also eine ArrayCollection wurde gespeichert. Wir haben jedoch einige Elemente aus dem Array gelöscht, und jetzt gibt es einige Dokumente mit Schlüsseln, die keine sequentiellen Ganzzahlen sind.mongodb EmbedMany strategie = set

Ich muss diese Inkonsistenz lösen, wie kann ich das tun?

Antwort

0

Sie könnten $type Operator und Abfrage für alle Dokumente verwenden, in denen embedManyField vom Typ object ist. Sobald Sie diese Dokumente haben, wenden Sie die Felder array_values auf Felder an, in denen das Array gespeichert werden soll, und speichern Sie sie erneut. Um solche Situationen in Zukunft zu vermeiden, sollten Sie die Strategie Ihrer Sammlung auf setArray oder atomicSetArray ändern.