MongoDB:为什么具有{field_name:“ <value>”}的查找查询与{field_name:^ <value> $}不同?

时间:2019-04-15 09:09:46

标签: mongodb django-rest-framework

我们正在为其中一个项目使用django + mongo(3.2版)+ django-rest-framework-mongoengine。对于每个具有unique = True的字符串字段,UniqueValidator(django-rest-framework-mongoengine的)将查询{field_name:^ value $}形式的查询。与{field_name:“ value”}查询相比,此查询花费的时间明显更多。在两种情况下,在检查执行计划时(在executiveStats模式下),已检查的键数之间存在巨大差异。 只想了解其背后的原因。任何帮助表示赞赏。

编辑: 请考虑将值作为确切的字符串,例如:{field_name:“ coffee”} vs {field_name:/ ^ coffee $ /}。我不明白为什么性能会有如此大的差异。不需要正则表达式搜索,只是mongoengine正在制作用于检查精确匹配的正则表达式

0 个答案:

没有答案