Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在使用Mongoose查询Mongo数据库中的集合时,如何找到与查询词类似的值?_Regex_String_Node.js_Mongodb_Mongoose - Fatal编程技术网

Regex 在使用Mongoose查询Mongo数据库中的集合时,如何找到与查询词类似的值?

Regex 在使用Mongoose查询Mongo数据库中的集合时,如何找到与查询词类似的值?,regex,string,node.js,mongodb,mongoose,Regex,String,Node.js,Mongodb,Mongoose,我一直在努力寻找答案,但没有找到任何有效的方法。我有一个NodeJS应用程序,带有猫鼬ORM。我试图查询我的Mongo数据库,结果与查询类似 我尝试使用一个新的RegExp来查找结果,但它对我不起作用。我得到结果的唯一时间是当查询与集合属性的值完全相同时 下面是我现在正在使用的: var query = "Some Query String."; var q = new RegExp('^/.*'+ query +'.*/i$'); Quote.find({au

我一直在努力寻找答案,但没有找到任何有效的方法。我有一个NodeJS应用程序,带有猫鼬ORM。我试图查询我的Mongo数据库,结果与查询类似

我尝试使用一个新的RegExp来查找结果,但它对我不起作用。我得到结果的唯一时间是当查询与集合属性的值完全相同时

下面是我现在正在使用的:

    var query = "Some Query String.";    
    var q = new RegExp('^/.*'+ query +'.*/i$');

    Quote.find({author: q}, function(err, doc){
        cb(doc);
    });

如果author属性的值包含类似于查询的内容(例如:“some.query String”),则需要返回结果。也许我能做的就是剥去外壳,排除特殊字符?最好的方法是什么?本例中我的正则表达式显然不起作用。谢谢

您可能希望按如下方式创建RegExp,因为在使用
新RegExp
时,您不包含
/
字符:

var q = new RegExp(query, 'i');

不过,我不知道有什么方法可以用RegExp忽略文档的
author
属性中的句点。您可能希望查看查询,以便进行更灵活的搜索。

您是否可以编辑您的问题,以添加一个
query
字符串和一个doc
author
属性值的示例,该属性值在您期望时不匹配?只更新了问题。如果没有道理,请告诉我。谢谢您可能需要
新的RegExp(查询'i')。使用
RegExp
时,不包括
/
字符。但这不会排除你想要的特殊角色。我的朋友,就是这样!是否有RegExp方法允许查询匹配句点或不匹配句点?你是最棒的!如果你把你的回复作为答复,我会接受你的答复。太好了。再次感谢!工作得很有魅力。