Printemps de Données MongoDB Indexé(unique=true)
Je vais avoir beaucoup de problèmes avec Spring Data
et MongoDB
quand il s'agit d'un champ Indexé.
J'ai dépassé les docs, mais ils ne sont pas très bon pour expliquer la différence entre @Indexed(unique=true)
et @Indexed(unique=false)
.
J'ai un terrain que je voulais indexé afin que je puisse exécuter des requêtes rapides contre elle. Dans ce cas, il à l'adresse de courriel qui doivent généralement être unique, mais il est possible que l'adresse e-mail pour être null pour une période.
Cependant, une fois un enregistrement comme valeur null emailAddress je ne peux pas avoir tout les autres enregistrements ayant une valeur null à l'adresse e-mail. Données du printemps refuse d'insérer des enregistrements supplémentaires avec null
emailAddresses. Et il ne parvient pas à jeter quoi que ce soit qu'il n'a pas de travail.
Droit maintenant, je l'ai mis à unique=true
, mais je suis en contemplant le paramètre unique=false
pour contourner ce problème.
Va ce résoudre le problème?
Et quels sont les autres problèmes pourrais-je ajouter de la détente?
Sera MongoDB pour me permettre d'avoir plusieurs adresses e-mail sont à égalité, et encore être rapide à l'interrogation?
OriginalL'auteur chubbsondubs | 2012-12-16
Vous devez vous connecter pour publier un commentaire.
De mongodb docs:
http://docs.mongodb.org/manual/core/indexes/#unique-indexes
Donc, si vous avez une clé unique, n'est pas définie à null.
Pour être honnête, dans votre cas d'utilisation(champ e-mail), je crois que vous n'avez pas besoin d'utiliser de clé unique, vous pouvez utiliser éparses clé, au lieu, donc, docs qui n'ont pas d'e-mail ne prendra pas votre index btree, ce qui va vous épargner de l'espace, et de l'augmentation de la recherche de vitesse.
OriginalL'auteur Arthur Neves