Es porque \b
solo coincide si hay un carácter de palabra a cada lado. En tu caso, el \b
está rodeado por un carácter de espacio y un paréntesis de apertura/cierre, ninguno de los cuales es un carácter de "palabra". Por lo tanto, el \b
la coincidencia falla.
podrías hacer
\\b0aef4666-3627-4c24-8e50-b0cf9a723823\\b
que coincidirá con el \b
porque ahora está en un límite de palabras.
Alternativamente, puede hacer coincidir un espacio O un inicio/fin de línea:
db.test.find({"text": /(^|\s)\(0aef4666-3627-4c24-8e50-b0cf9a723823\)($|\s)/i} )