Я ищу запись с полным совпадением строк, разница только в маленькой букве в строке. Но строка с ().
"name" : {
"en" : "Monginis Chocolate Muffins 6 N (150 g Each)",
"hi" : "",
"te" : ""
}
Запрос
db.shop_items.findOne({'name.en':{$regex:'.*\Monginis Chocolate Muffins 6 N (150 g Each).*',$options:'i'}})
Я не избегаю (), я напрямую ищу текст, но строка с (), поэтому запись не приходит. Круглые скобки включены в строку. Это похоже на условие where, но из-за чувствительности к регистру я использую регулярное выражение
Вы попали туда, потому что скобки ()
- это специальные символы регулярных выражений. Вы "должны" убежать от них
Прочтите ссылки. Здесь есть не только экранирование регулярных выражений, но и современная MongoDB, позволяющая выполнять поиск без учета регистра, даже не используя регулярное выражение, если вы знаете точную строку, которая отличается только регистром. Примеры и ссылки на документацию есть.