MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongo $ regex com parênteses e limite de palavras


É porque \b só corresponde se houver um caractere de palavra em ambos os lados. No seu caso, o \b é cercado por um caractere de espaço e um parêntese de abrir/fechar, nenhum dos quais é um caractere de "palavra". Portanto, o \b partida falha.

Você poderia fazer
\\b0aef4666-3627-4c24-8e50-b0cf9a723823\\b

que corresponderá ao \b porque agora está em um limite de palavra.

Alternativamente, você pode combinar com um espaço OU início/fim de linha:
db.test.find({"text": /(^|\s)\(0aef4666-3627-4c24-8e50-b0cf9a723823\)($|\s)/i} )