【问题标题】:Mongodb case insensitive search with $regex使用 $regex 的 Mongodb 不区分大小写搜索
【发布时间】:2017-11-21 12:20:59
【问题描述】:

我正在尝试在集合中查找匹配的名称。如果匹配,则应该拒绝查询。

我使用正则表达式进行不区分大小写的搜索(例如,GOD !== god),但仍应省略。

这很好用。

field = 'name';
query[field] = { '$regex': new RegExp(req.body[field], "i"), '$options': 'i' };

问题是当我使用这个词的一部分时,它也会被拒绝。例如 超级管理员已插入。然后插入管理员会引发错误,因为管理员是超级管理员的一部分。

如何为完全匹配的不区分大小写搜索编写 mongo db 查询。不适用于零件。

提前致谢。

【问题讨论】:

    标签: regex mongodb


    【解决方案1】:

    您可以在正则表达式中添加开始和结束字符:

    field = 'name';
    query[field] = { '$regex': new RegExp('^' + req.body[field] + '$', "i"), '$options': 'i' };
    

    这应该消除部分匹配。

    【讨论】:

    • 太棒了。谢谢。
    • 希望我的经验对你有所帮助。在 python 代码中使用 re.escape() 会很有帮助。 (“重新导入”)python query[field] = { '$regex': new RegExp('^' + re.escape(req.body[field]) + '$', "i"), '$options': 'i' };
    猜你喜欢
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    相关资源
    最近更新 更多