0

次のMongoDBPHPスクリプトに小さな問題があります

$collection = $this->db->retail_details;
        $array = array('$OR'=>array(
            "salesperson"=>new MongoId($uid),
            "Manager"=>new MongoId($uid)
        ));
        $cursor = $collection->find($array);

私はすべての行の営業担当者とマネージャーを持っており、マネージャーの正しい$ UIDが営業担当者と一致しないことを検出していますが、マネージャーのMongoIDと一致するためデータを返す必要があります。

4

1 に答える 1

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);

私の意見では、これはうまくいくはずです。

于 2012-08-07T05:57:29.787 に答える