2017-07-21 3 views
0

Ma requête a le sélecteur suivant,Atteindre la casse pour cloudant requêtes

{ 
    "selector": { 
    "_id": { 
     "$gt": null 
    }, 
    "series": { 
     "$regex": "(?i)mario" 
    } 
    } 
} 

Maintenant, si j'ai un document avec series = mario12, la requête ci-dessus retourne ce document qui ne devrait pas se produire. Je veux que ma requête ignore seulement le cas de "mario".

Comment puis-je obtenir une insensibilité à la casse?

+0

Votre expression régulière correspond plus large que ce que vous vouliez. Il correspond à "casse" insensible à la casse, bien sûr, mais n'importe où dans la chaîne. Ancrer au début et à la fin de la chaîne, comme le suggère markwatsonatx ci-dessous. – xpqz

Répondre

2

Je ne suis pas sûr de comprendre exactement la question. Si vous ne voulez faire correspondre le mot complet « mario » dans une affaire insensible à la casse manière vous utilisez un sélecteur comme celui-ci:

{ 
    "selector": { 
    "_id": { 
     "$gt": null 
    }, 
    "series": { 
     "$regex": "^(?i)mario$" 
    } 
    } 
} 

Cela correspondra à « Mario », « Mario », « MARIO », etc. , mais ne correspond pas à "mario12", "Mario12", "12Mario", etc.

+0

Parfait, ça marche maintenant. Je vous remercie – swa