0

私は初級から中級の PHP 開発者で、MongoDB を使い始めています。メソッドに渡された引数に基づいてクエリを作成するMongoクエリ クラスを作成したいと考えています。これが可能であることを願っていますが、基本的な PHP テクニックが欠けているだけです。

私は静的検索機能から始めました:

$dateRange = $this->collection->find(array(

        'timeStamp' => array(
            '$gt' => $startTime,
            '$lt' => $endTime
        ),
        'userAgent' => array(
            '$ne' => 'ELB-HealthChecker/1.0'
        )

));

時間範囲、userAgent、緊急度などをメソッドに渡し、それらの引数が存在するかどうかに基づいてクエリを作成できるようにしたいと考えています。私はこのようなことを試しました:

if($startTime && $endTime){
$filter = "

     'timeStamp' => array(
                '$gt' => $start,
                '$lt' => $end
            )";
}

if($userAgent){
$filter .= ",
        'userAgent' => array(
            '$ne' => 'ELB-HealthChecker/1.0'
        )";

$dateRange = $this->collection->find(array($filter);

うまくいきませんでした。それで、私は何を間違っていますか?

4

2 に答える 2

2

配列を使用する必要がある文字列を使用しようとしているようです。

$qry = array();

if(isset($startTime) && isset($endTime)) {
    // Add the timestamp array
    $qry['timestamp'] = array('$gt' => $startTime, '$lt' => $endTime);
}

if(isset($userAgent)) {
    // add the userAgent
    $qry['userAgent'] = array('$ne' => 'ELB-HealthChecker/1.0');
}

$dateRange = $this->collection->find($qry);
于 2012-05-18T17:06:24.040 に答える
0

試しましたif(isset($startTime) && isset($endTime))か?elseまた、そこにもいくつかのステートメントが必要なようです。

于 2012-05-18T16:48:48.720 に答える