MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongo $regex avec parenthèse et limite de mot

C'est parce que \b ne correspond que s'il y a un caractère de mot de chaque côté. Dans votre cas, le \b est entouré d'un espace et d'une parenthèse ouvrante/fermante, qui ne sont ni l'un ni l'autre un caractère "mot". Donc le \b la correspondance échoue.

Vous pourriez faire

\\b0aef4666-3627-4c24-8e50-b0cf9a723823\\b

qui correspondra au \b parce que maintenant c'est sur une limite de mots.

Vous pouvez également faire correspondre un espace OU un début/fin de ligne :

db.test.find({"text": /(^|\s)\(0aef4666-3627-4c24-8e50-b0cf9a723823\)($|\s)/i} )