我找到了很多这个问题的解决方案,但都没有。假设我有以下架构:
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为空)。
谢谢!
答案 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