2014-02-19 1 views
1

У меня есть запрос MongoDB, как указано ниже:MongoDB Как Query (начиная с буквы или слова находят запрос)

Mailbox.find({ subject: new RegExp(query , 'i') }); 

Этот запрос дает мне все результаты, которые содержит пример query.For мой запрос теста то на выходе отображаются все результаты, содержащие «тест».

Если мне нужны результаты, которые имеют только начальную букву 't' или слово 'test', как это можно сделать?

+2

что-то вроде '/^теста. * /' – Sammaye

+0

ли вы имеете в виду вы хотите результатов, которые начинаются с «т», или слово «тест» в любом месте, или вы хотите, как «т» и " тест "только в начале? – yaoxing

+0

, но слово «тест» - это подмножество слов, начинающихся с «t». если вы хотите получить все слова, начинающиеся с «t», вы получите «тестовое» слово автоматически – nikis

ответ

5

Это общее регулярное выражение вопрос и должен быть найден

/^test/ 

Символ^каретка означает начало строки.

Поиск с начало также рекомендуется в mongo для повышения эффективности, что означает отказ от сканирования коллекции. Дополнительную информацию о формах этого, смотрите в документации на $regex.

Сохраните это как закладку и ссылку на любые другие изменения, которые могут вам понадобиться.

http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/