Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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/6/mongodb/13.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
Php MongoDB regex带$and的多查询_Php_Mongodb_Mongodb Query - Fatal编程技术网

Php MongoDB regex带$and的多查询

Php MongoDB regex带$and的多查询,php,mongodb,mongodb-query,Php,Mongodb,Mongodb Query,我很难做到这一点 我有这段代码,我已经在Rock Mongo中测试过了,它运行得很好 array( 'TEST' => array( '$in' => array( new MongoRegex('/^(?!TESTVALUE)/$ig')) ) ) 上面的代码返回给我所有的文档,这些文档对于键测试没有TESTVALUE 现在我想要实现什么 首先,我不知道如何编写一段代码来获取所有没有值TESTVALUE和SECOND

我很难做到这一点

我有这段代码,我已经在Rock Mongo中测试过了,它运行得很好

array(
    'TEST' => 
    array( '$in' => 
        array( new MongoRegex('/^(?!TESTVALUE)/$ig'))
         )
     )
上面的代码返回给我所有的文档,这些文档对于键测试没有TESTVALUE

现在我想要实现什么

首先,我不知道如何编写一段代码来获取所有没有值TESTVALUE和SECONDVALUE的文档

这将是这样的:

array(
    'TEST' => 
    array( '$in' => 
        array( new MongoRegex('/^(?!TESTVALUE)/$ig'),new MongoRegex('/^(?!SECONDVALUE)/$ig') )
        )
     )
我还需要上面用PHP编写的代码

欢迎您提供任何帮助或建议,我们将不胜感激


提前感谢

我认为你不能像那样使用$in,但这应该可以:

'TEST' => array('$and' => array(
    array('$regex' => new MongoRegex('/^(?!TESTVALUE)/$ig'),
    array('$regex' => new MongoRegex('/^(?!TESTVALUE)/$ig')))

一些未经测试的结果

您的查询和描述似乎相互矛盾。如果您想要查询所有没有字符串作为字段值的文档,为什么要使用正则表达式?是否不希望该值成为字段值的子字符串?如果您只想在测试字段的值不是X或Y的情况下执行类似“查找文档”的查询,请使用$nin not in:


如果该字段应该匹配多个正则表达式,那么要么将它们组合成一个正则表达式,要么将条件与$and组合。

这不起作用,但我发现您编写的是未经测试的。如果我试着用这个做点什么,我会告诉你。是的,基本上我的意思是,你必须对比每个正则表达式,或者找出如何将它们写入一个正则表达式,也许可以使用|运算符$我今天就放弃了。我真的没有什么想法了。
db.collection.find({ "TEST" : { "$nin" : ["X", "Y"] } })