我对以下MongoDB PHP脚本有一个小问题
$collection = $this->db->retail_details;
$array = array('$OR'=>array(
"salesperson"=>new MongoId($uid),
"Manager"=>new MongoId($uid)
));
$cursor = $collection->find($array);
我有所有行销售人员和经理,我正在为经理准备正确的$UID它不会与销售人员匹配,但它仍然应该返回与经理 MongoID 匹配的数据。
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);
在我看来,这应该有效。