php mongoclient - 尝试查询只有"部门的记录"领域

时间:2016-11-15 20:30:34

标签: php mongodb

我已尝试查询填写了部门值的文档:

            $collection = $this->mongo_db->db->selectCollection('widget');
            $result = $collection->find(
            array("department"=>array('$ne' => null),"department"=> array('$ne' => "")) 
            )->sort(['department'=>1]);
            return iterator_to_array($result);

但是这仍然是返回如下文档:

{
    "_id" : ObjectId("5824b9376b6347a422aae017"),
    "widgetnum" : "1840023",
    "last_assigned" : "missing"
}

我以为

 "department"=>array('$ne' => null) 

会过滤掉这个。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

对于你来说,完美将成为$exists运营商。 https://docs.mongodb.com/manual/reference/operator/query/exists/

查询应该如下所示(选择部门存在且不等于""的所有文档)。

$collection = $this->mongo_db->db->selectCollection('widget');
$result = $collection->find(
        array( "department"=> array('$exists' => "true", '$nin': [""]) ) 
        )->sort(['department'=>1]);
return iterator_to_array($result);

希望这有帮助。