首页 文章

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

提问于
浏览
4

这可能是一件非常容易的事情,但我对MongoDB很新,并且无法正确理解这个词 .

我从数据库中提取潜在客户,我只希望它在电子邮件字段不为空的情况下提取记录 . 我已经尝试将语句放入跳过记录,如果它不是null,但是有许多字段不是null,但也没有任何字符 . 这是我的MongoDB查询:

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

我也尝试了 'email' => array('$ne' => '')) 但是也没有做到这一点 .

有一个简单的方法吗?我知道在MySQL中它会是一个简单的 where email != "" 但我仍在学习Mongo的方式:)谢谢!

5 回答

  • 0

    经过3个小时的失败,我设法以一种棘手的方式做到了:

    find('field'=> array('$ regex'=>' . *'))

  • 4
    $records = $dbh->find('$or'=>array(
        array('email'=>array('$exists' => false)),
        array('email'=>array('$ne' => null)),
        array('email'=>array('$ne' => ''))
    ));
    
  • 0

    你也可以这样做

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

    试试这个,你就是不正确地插入阵列

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

    好吧,我只是想出了一个体面的方式,并将发布给任何其他“noob”像我一样有同样的问题:)

    我用'$ nin'和一个数组来解决这个问题 . 这是我的查询:

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

相关问题