Как проанализировать ввод String и выполнить поиск в MongoDB, "a *", "* a *", "* a", "a, b", "a..b" - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть веб-приложение (JS, NodeJS, MongoDB, Meteor) и я хочу добавить функцию поиска для моего списка заказов. При поиске по номеру заказа (строка):

Если введено значение

  • a*, вернуть номера заказа, которые начинаются с a, например, a001
  • *a, номера заказов на возврат, которые заканчиваются a, например, x00a
  • *a*, номера заказов на возврат, которые имеют a в середине, например, 100a01
  • a, b,номера заказов на возврат a или b
  • a..b, номера заказов на возврат от a до b (например, 50001..50005)

Asновый программист, я понятия не имею, как это сделать. Должен ли я просто разобрать его в каждой ветви и преобразовать запрос в регулярное выражение? Любой код регулярного выражения JS или Монго, например? Есть ли лучший способ сделать это? Есть ли какой-нибудь пакет для этого?

1 Ответ

1 голос
/ 11 ноября 2019

mongodb поддерживает поиск записей с регулярными выражениями. Смотрите $ regex . Например,

db.orders.find( { order_id: { $regex: /a*/ } } )
...