如何在mongoose中找到包含空格的给定子字符串的所有结果

时间:2016-03-07 07:32:26

标签: regex node.js mongodb mongoose

我找到了很多这个问题的解决方案,但都没有。假设我有以下架构:

var Schema = new Schema ({
    name         : String,
    url          : String
});

让我们说我的一个条目是:

{
    name : "Product and Services",
    url  : "www.randomurl.com"
}

我希望能够通过子字符串检索此结果,例如" and services""product and"等等。我尝试了以下(partialToSearch是部分字符串):

Schema.find({name: { "$regex": partialToSearch, "$options": "i" }}, function(err, res){...});

并尝试了以下内容:

Schema.find({name: new RegExp(partialToSearch, "i")}, function(err, res) {...});

当我只传递"product" "and""services"时,它们都有效,但是当我放置一个空格而另一个字没有找到结果时(res为空)。

谢谢!

2 个答案:

答案 0 :(得分:1)

这很可能是因为您没有将空白转换为"\s"\s+更好)但字符

"$regex": new RegExp(partialToSearch.replace(/\s+/g,"\\s+"), "gi");

我没有机会尝试使用猫鼬,但我很确定它很好。

答案 1 :(得分:0)

您的研究非常有用我从您的问题中找到了答案,我刚读了Mongoose和MongoDb文档并得到了答案 to_numeric

file_path = "/Users/work/Desktop/StructuRNA/website/scripts/RFAMfamily12.1.txt"

刚提供的选项(i)将忽略大小写,(x)将截断模式

中的空格

MongoDb文档的屏幕截图:

https://docs.mongodb.com/manual/reference/operator/query/regex/#op._S_regex