2011-07-21 2 views
6

Je peux interroger des valeurs sans tenir compte de la casse, mais je voudrais interroger les clés insensiblement, de sorte que les utilisateurs puissent les saisir en minuscules.MongoDB recherche de clé insensible à la casse

Cela ne fonctionne pas, car il n'est pas valide JSON:

{ 
    /^lastName$/i: "Jones" 
} 

Y at-il une stratégie que je pourrais utiliser pour cela, en plus juste faire une nouvelle collection de clés en tant que valeurs?

+0

Qui -1'd cela? C'est une question raisonnablement valable. Réinitialisation à 0 –

Répondre

5

Il n'existe actuellement aucun moyen de le faire.

MongoDB est « schéma libre » mais qui ne doit pas être confondu avec « ne dispose pas d'un schéma ». Il y a une supposition implicite que votre code a un certain contrôle sur les noms des clés qui apparaissent réellement dans le système.

Faisons tourner la question.

  • Y at-il une bonne raison que les utilisateurs insèrent des touches sensibles à la casse?
  • Pouvez-vous simplement convertir toutes les clés en minuscules lorsqu'elles sont insérées?

Encore une fois, MongoDB suppose que vous avez une certaine connaissance des clés disponibles. Votre question implique que vous n'avez aucune connaissance des clés disponibles. Vous devrez combler cette lacune.

+0

Merci pour cette réponse très claire. – axiomx11

+0

"Il n'y a actuellement aucun moyen de le faire." Cette réponse est-elle toujours valable aujourd'hui? –

+0

Ce sera probablement toujours le cas. Changer les requêtes pour soutenir les gammes sur la touche est une tonne de travail. En outre, il ne peut pas être indexé ce qui est un gros problème. –

Questions connexes