我对以下MongoDB PHP脚本有一个小问题
$collection = $this->db->retail_details;
$array = array('$OR'=>array(
"salesperson"=>new MongoId($uid),
"Manager"=>new MongoId($uid)
));
$cursor = $collection->find($array);
我拥有所有行saleperson和Manager,我正在为管理员提供正确的$ UID,它与销售人员不匹配,但它仍应返回与Manager MongoID匹配的数据。
答案 0 :(得分:1)
mongodb中的运算符区分大小写。所以你应该使用“$ or”而不是“$ OR”。但我认为你的查询也是不正确的,因为“$ or”需要一个索引数组作为它的标准:
$collection = $this->db->retail_details;
$array = array('$or'=>array(
array("salesperson"=>new MongoId($uid)),
array("Manager"=>new MongoId($uid))
));
$cursor = $collection->find($array);
在我看来,这应该有用。