Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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中查找字段,其中字段不为空(在PHP中)_Php_Mongodb - Fatal编程技术网

在MongoDB中查找字段,其中字段不为空(在PHP中)

在MongoDB中查找字段,其中字段不为空(在PHP中),php,mongodb,Php,Mongodb,这可能是一件很容易做到的事情,但我对MongoDB还很陌生,很难正确使用这个词 我从数据库中提取线索,我只希望它提取电子邮件字段不为空的记录。我已经尝试过在语句中输入,如果记录不为null,则跳过它,但是有许多字段不是null,但也没有任何字符。以下是我的MongoDB查询: $records=$dbh->find('email'=>array('$ne'=>null))->limit(2000) 我还尝试了'email'=>array('$ne'=>''),但这也没有奏效 有没有一个简单的方法

这可能是一件很容易做到的事情,但我对MongoDB还很陌生,很难正确使用这个词

我从数据库中提取线索,我只希望它提取电子邮件字段不为空的记录。我已经尝试过在语句中输入,如果记录不为null,则跳过它,但是有许多字段不是null,但也没有任何字符。以下是我的MongoDB查询:

$records=$dbh->find('email'=>array('$ne'=>null))->limit(2000)

我还尝试了
'email'=>array('$ne'=>'')
,但这也没有奏效


有没有一个简单的方法可以做到这一点?我知道在MySQL中,它将是一个简单的
where-email!=“
但我仍在学习Mongo:)谢谢

尝试此操作,您将不正确地封闭到数组中

 $records =      $dbh->find(array("email" => array('$ne' => null)))->limit(2000);

好吧,我刚刚想出了一个不错的办法,我会把它贴在任何像我这样有同样问题的“noob”上:)

我在数组中使用了“$nin”,它解决了这个问题。现在我的问题是:


$records=$dbh->find(数组(“email”=>array('$nin'=>array('','',null))->limit(2000)

在3个小时的失败后,我以一种巧妙的方式做到了这一点:


查找('field'=>array('$regex'=>'.*))

您也可以这样做

$records = $dbh->find(array('$where' => 'this.email && this.email.length'))->limit(2000);

隐马尔可夫模型。。。这是可行的,它实际上返回了更多的电子邮件记录,但仍然有一些空字段(可能是其中只有一个空格的字段?)。不过,感谢您对阵列的更正,很高兴知道这一点。
$records = $dbh->find(array('$where' => 'this.email && this.email.length'))->limit(2000);