Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb,如何在查询中使用$notfilter_Mongodb_Mongodb Compass - Fatal编程技术网

mongodb,如何在查询中使用$notfilter

mongodb,如何在查询中使用$notfilter,mongodb,mongodb-compass,Mongodb,Mongodb Compass,我尝试在mongodb compass中运行一个相当简单的查询: { $and: [ { Source: "hostname" }, { Message: { $not: /.*unexpected data.*1234.*/ } } ] } 基本上,我的文档模型包含一个源字段和一个消息字段 我需要查询源等于给定“主机名”且消息不包含“意外数据…1234”的所有文档 当我在正则表达式中不包含$NOT过滤器时,一切都正常。。。所以我得到了所有包含这条信息的文件。。。但是现在我需要所有其他没有包含

我尝试在mongodb compass中运行一个相当简单的查询:

{ $and: [ { Source: "hostname" }, { Message: { $not: /.*unexpected data.*1234.*/ } } ] }
基本上,我的文档模型包含一个
字段和一个
消息
字段

我需要查询源等于给定“主机名”且消息不包含“意外数据…1234”的所有文档

当我在正则表达式中不包含$NOT过滤器时,一切都正常。。。所以我得到了所有包含这条信息的文件。。。但是现在我需要所有其他没有包含的信息。。。我不知道如何正确使用$not

MongoDb手册中给出的示例仅显示在一条语句中使用$not。。。但由于某些原因,即使这样对我也不起作用

{ Message: { $not: /.*unexpected data.*1234.*/ } }
再说一次,没有$not。。。我错过了什么

编辑:

这是我正在谈论的图像,将此过滤器放置在MongoDb Compass中,它表明过滤器不正确。。。MongoDb Compass是否因某种原因无法运行复杂的过滤器?

请尝试使用$regex,它应该可以工作:

find( { $and: [ { Source: "hostname" }, { Message: { $not: { $regex: /.*unexpected data.*1234.*/ } } } ] })

MongoDB Compass只支持由单引号包围的正则表达式,而不支持正斜杠。所以
$regex:/.*意外数据。*1234.*/
应该是
$regex:'.*意外数据。*1234.*.


奇怪的是,我先试了一下,但也没用。。。是否还有其他原因导致$not过滤器无法正常工作?它对我很有效。查看我附加的屏幕截图。请发布您收到的错误消息,谢谢!我对我的问题进行了编辑并添加了过滤器示例。。。MongoDb Compass指出此过滤器在某些方面不正确,但没有说明如何。。。您使用什么应用程序来运行您的示例,也许我可以在那里试用它?我使用Robo3T-1.2。如果它有效,请接受答案,以使其结束