我已尝试查询填写了部门值的文档:
$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)
会过滤掉这个。
有什么建议吗?
答案 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);
希望这有帮助。