用于精确子字符串匹配的Mongodb搜索字符串字段

用于精确子字符串匹配的Mongodb搜索字符串字段,mongodb,mongoose,Mongodb,Mongoose,我有一个mongodb集合,它有一个字符串字段comment。我想找到所有有注释的文档,这些文档包含的子字符串完全等于某个特定字符串s;此字符串可以包含任何符号(不仅仅是字母)。我还想利用使用索引的优势,这样我的查询就不会对所有集合执行完全扫描 我知道我可以创建一个text索引,然后执行{$text:{$search:s}查询,但这将调用mongo的所有文本搜索机制,如拆分搜索词、词干分析等,我不需要这些。最重要的是,我需要搜索准确的短语s,因此我不需要拆分来搜索术语 我可以尝试按照Mongo的

我有一个mongodb集合,它有一个字符串字段
comment
。我想找到所有有
注释
的文档,这些文档包含的子字符串完全等于某个特定字符串
s
;此字符串可以包含任何符号(不仅仅是字母)。我还想利用使用索引的优势,这样我的查询就不会对所有集合执行完全扫描

我知道我可以创建一个
text
索引,然后执行
{$text:{$search:s}
查询,但这将调用mongo的所有文本搜索机制,如拆分搜索词、词干分析等,我不需要这些。最重要的是,我需要搜索准确的短语
s
,因此我不需要拆分来搜索术语

我可以尝试按照Mongo的文档将
s
用引号括起来,但显然一个简单的
{$text:{$search:“\”“+s+“\”“}}
将不起作用,因为我的
s
可能也包含引号。Mongo的文档没有明确说明我应该如何在短语中转义引号,或者它是否被支持

我可以尝试搜索一个regexp,但这也需要我转义字符串中的任何特殊字符;而且,据我所知,这样的regexp搜索不会使用任何索引,而是执行完整的数据库扫描

如何执行这样的搜索

我在node.js中使用mongoose,如果这很重要的话