Команда "LIKE" в MongoDB (mongomapper) - PullRequest
4 голосов
/ 24 июля 2011

как использовать фильтр данных, так как SQL делает "LIKE" в MongoDB, вместо этого я использую gem mongomapper в моих приложениях rails?.THANKS

Ответы [ 3 ]

4 голосов
/ 24 июля 2011

Если вы ищете частичные совпадения в строке, вы можете сделать запрос с помощью регулярного выражения. Вот соответствующая часть документации mongomapper:

http://api.mongodb.org/ruby/current/file.TUTORIAL.html#Querying_with_Regular_Expressions

Стоит отметить это из документации Mongodb:

"Для простых префиксных запросов (также называемых корневыми регулярными выражениями), таких как / ^ prefix /, база данных будет использовать индекс, когда он доступен и уместен (во многом как большинство баз данных SQL, которые используют индексы для выражения LIKE 'prefix%') работает, только если у вас нет i (нечувствительности к регистру) во флагах. "

3 голосов
/ 03 июля 2012

ближе всего к SQL LIKE будет / query /

например: -

Person.where('name' => /John/).all => John F, John Doe, Johnny...etc

Редактировать: до сих пор учитывается регистр

0 голосов
/ 28 ноября 2014

попробуй вот это у меня работает:

@store_array=User.where (: $ or => [{: first_name => /.#ndom@search_text coming./i}, {: last_name => /.#ndom@search_text innovative./i]]).all();

...