В оболочке mongodb эта команда находит документы в базе данных:
> db.messages.find({'headers.value': /姚/ }).count()
> 9
Обратите внимание на китайский символ.Этот символ \u59e6
Юникод экранирован.
Однако ни один из этих запросов не приводит к какому-либо попаданию (возвращает null
, 0 с count ()):
> db.messages.find({'headers.value': new RegExp("\u59e6") }).count()
> db.messages.find({'headers.value': new Regexp('\u59e6') }).count()
> db.messages.find({'headers.value': /\\u{59e6}/ }).count()
> db.messages.find({'headers.value': /\u{59e6}/ }).count()
> db.messages.find({'headers.value': {regex: '\\u{59e6}'}}).count()
> db.messages.find({'headers.value': {regex: '\u{59e6}'}}).count()
> 0
Все эти возвраты 0Я пропустил все, кроме последнего.
Может ли кто-нибудь помочь мне, как правильно экранировать символы Юникода в регулярном выражении в оболочке mongodb?В конце я хотел бы определить запросы с диапазонами Юникода.