Как создать поисковый запрос для частичных совпадений строк в Mongoose?

Я новичок в Mongoose.js, и мне интересно, как создать простой запрос Mongoose, который возвращает значения, содержащие символы в том порядке, в котором они были отправлены.

Это будет для формы автозаполнения, которая должна вернуть города с именами, которые содержат символы, вводимые в поле поиска. Должен ли я начинать с запроса .where?

Ответ 1

Вы можете найти по regexp, что должно позволить вам искать гибкий (хотя и не очень быстрый) способ. Код будет похож на:

var input = 'ln';  // the input from your auto-complete box

cities.find({name: new RegExp(input, "i")}, function(err, docs) {
   ...
});

Конечно, вы можете предварительно обработать строку, чтобы она совпадала с началом (prepend by ^), с конца (append by $) и т.д. Просто обратите внимание, что сопоставление с произвольными частями длинных строк может быть медленно.