Achten Sie auf ein Problem mit spärlichen eindeutigen Indizes in MongoDB. Ich habe es getroffen und es ist extrem mühsam, es zu umgehen.
Das Problem ist folgendes: Sie haben ein Feld, das nur dann eindeutig ist, wenn es vorhanden ist, und Sie möchten alle Objekte finden, bei denen das Feld nicht vorhanden ist. Die Art und Weise, wie spärliche eindeutige Indizes in Mongo implementiert werden, ist, dass Objekte, bei denen das Feld fehlt, überhaupt nicht im Index enthalten sind - sie können nicht durch eine Abfrage zu diesem Feld abgerufen werden. {$exists: false}
funktioniert einfach nicht.
Die einzige Abhilfe, die mir eingefallen ist, ist eine spezielle Null-Wertefamilie, bei der ein leerer Wert in ein spezielles Präfix übersetzt wird (wie Null: ), die mit einer uuid verkettet sind. Das ist ein echtes Problem, denn man muss beim Schreiben/Queren/Lesen auf die Umwandlung in/aus den leeren Werten achten. Ein großes Ärgernis.
Ich habe nie verwendet Server-Seite Javascript-Ausführung in MongoDB (es ist nicht sowieso empfohlen) und ihre Karte / reduzieren hat schreckliche Leistung, wenn es nur ein Mongo-Knoten. Aus all diesen Gründen überlege ich nun, CouchDB auszuprobieren, vielleicht passt es besser zu meinem speziellen Szenario.
BTW, wenn jemand den Link zu der entsprechenden Mongo Ausgabe kennt, die das spärliche eindeutige Indexproblem beschreibt - bitte teilen.