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

时间:2020-10-25 11:36:45

标签: mongodb mongoose

我有一个mongodb集合,该集合具有一个字符串字段comment。我想查找所有comment包含与某个特定字符串s完全相等的子字符串的文档;此字符串可以包含任何符号(不仅是字母)。我还想利用索引的优势,以便查询不会对所有集合进行完全扫描。

我了解我可以创建一个text索引,然后执行{ $text: { $search: s } }查询,但这将调用所有mongo的文本搜索机制,例如拆分为搜索词,词干等,而我不这样做需要。最重要的是,我需要搜索准确的词组s,因此不需要拆分即可搜索词条。

根据Mongo的文档,我可以尝试将s括在引号中,但是显然,简单的{ $text: { $search: "\"" + s + "\"" } }无效,因为我的s也可能包含引号。 Mongo的文档未阐明如何在短语中转义引号,或者是否完全支持该短语。

我可以尝试搜索正则表达式,但这还要求我转义字符串中可以包含的所有特殊字符;而且,据我所知,这种正则表达式搜索将不使用任何索引,并且将执行完整的数据库扫描。

如何进行此类搜索?

如果重要的话,我在node.js中使用猫鼬。

0 个答案:

没有答案