搜索具有“。”的mongodb记录。记录名称中的(点)

时间:2018-09-11 12:26:29

标签: regex mongodb-query

记录在数据库中

{
    "_id" : ObjectId("5b97b20e7b473d1ee468a972"),
    "name" : "insearch.com wiki",
    "description" : "insearch",
    "createdAt" : ISODate("2018-09-11T12:16:14.181Z"),
    "updatedAt" : ISODate("2018-09-11T12:16:14.181Z"),
    "__v" : 0
}

搜索查询

db.getCollection('contents').find({name:{$regex: '.', $options: "i"}})

当我输入“。”时,如何搜索记录。 (仅限点运算符)。

1 个答案:

答案 0 :(得分:1)

.句点字符在与任何字符匹配的正则表达式中都有特殊含义。要禁用该行为并与期间本身匹配,您需要对其进行转义:

db.getCollection('contents').find({name:{$regex: '\\.', $options: "i"}})

要以编程方式执行此操作(如您的搜索框所示),请参见Is there a RegExp.escape function in Javascript?