首页 > 解决方案 > 检查您的 elemMatch 正则表达式条件是否有效

问题描述

我有一个 MongoDB 查询:

db.list.find({categories:{$elemMatch:{ "$regex":".*Bar.*", $not:/^Barbeque/}}}).pretty()

它查看类别数组中的元素,我认为获取所有文档,其中有一个包含“Bar”但没有包含“Barbecue”的元素。如何检查以确保我的查询是正确的?

让我知道我的查询是否错误以及如何解决。

标签: regexmongodb

解决方案


您应该像这样指定字符串的结尾:

$not:/^Barbeque$/

而不是

$not:/^Barbeque/

因为如果任何文件包含(即“烧烤”),它必须返回到您的查询结果。

关于确保我的查询是否正确,我不知道。但是如果您的查询是正确的,mongo 必须返回与书面查询匹配的值。

如果出现问题,一定是查询中导致 mongo 的逻辑为您返回了意外的值。

所以在你运行它之前检查你的查询。:D


推荐阅读