如何解析输入字符串并在MongoDB中搜索“ a *”,“ * a *”,“ * a”,“ a,b”,“ a..b”

时间:2019-11-11 06:59:31

标签: javascript mongodb meteor

我有一个Web应用程序(JS,NodeJS,MongoDB,Meteor),并想为我的订单列表添加搜索功能。按订单号(字符串)搜索时:

如果输入为

  • a*,返回以a开头的订单号,例如a001
  • *a,返回以a结尾的订单号,例如x00a
  • *a*,中间带有a的退货单编号,例如100a01
  • a, b,退货单编号为ab
  • a..b,将订单号从ab(例如50001..50005)

作为一个新程序员,我不知道该怎么做。我是否只需将其解析到每个分支并将查询转换为正则表达式? 例如任何JS或Mongo regex代码?还有更好的方法吗?有任何包装可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

mongodb支持使用正则表达式查找记录。参见$regex。例如,

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