【问题标题】:How to parse input String and search in MongoDB, "a*","*a*","*a","a, b","a..b"如何解析输入字符串并在 MongoDB 中搜索 "a*","*a*","*a","a, b","a..b"
【发布时间】:2019-11-11 06:59:31
【问题描述】:

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

如果输入是

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

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

【问题讨论】:

  • 你看过猫鼬吗?
  • 第一件事:阅读索引是什么;特别是第三个例子是性能的真正杀手。其他示例将极大地受益于正确的索引。
  • 感谢@Edwin,我使用 Meteor 所以只有 mongo

标签: javascript mongodb meteor


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 2014-03-29
    • 1970-01-01
    • 2021-10-06
    • 2017-01-21
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多