Запрос в MongoDB похож на «где» - PullRequest
0 голосов
/ 13 декабря 2011

Я пытаюсь создать запрос в Mongo, который похож на следующий в SQL:

@issues = Issue.where("content like ?", "%#{params[:q]}%") 

Но в Mongo, когда я использую "где", я получаю ВСЕ результаты.Когда я использую «найти», я не получаю никаких результатов.Вот что я запускаю, но оно не работает:

@issues = Issue.where({content: "/^#{params[:q]}/" })

Я просто хочу вернуть элементы, соответствующие буквам, введенным в мой запрос.Я использую MongoDB через Mongoid.

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Посмотрите на регулярные выражения в документации MongoDB:

db.collection.find( { content : { $regex : '*', $options: 'i' } } );

Замените * на правильное регулярное выражение для ваших нужд;

0 голосов
/ 13 декабря 2011

Можешь попробовать? Должно работать, если работает в первом случае

@issues = Issue.where({content: /^#{params[:q]}/ })
...