检查您的elemMatch正则表达式条件是否有效

时间:2019-03-25 01:09:26

标签: regex mongodb

我有一个MongoDB查询:

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

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

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

1 个答案:

答案 0 :(得分:0)

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

$not:/^Barbeque$/

而不是

$not:/^Barbeque/

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

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

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

所以在运行查询之前,请先检查一下。 :D