[MongoDB] 使用PHP在MongoDB中搜索的实现

  • 2020 年 2 月 25 日
  • 笔记

条件操作符用于比较两个表达式并从mongoDB集合中获取数据。 MongoDB中条件操作符有: (>) 大于 – $gt (<) 小于 – $lt (>=) 大于等于 – $gte (<= ) 小于等于 – $lte MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式,使用PCRE (Perl Compatible Regular Expression) 作为正则表达式语言。 MongoDB OR 条件语句使用了关键字 $or

下面是具体一个PHP例子中的$filter数组:

array(3) {    ["$or"]=>    array(2) {      [0]=>      array(1) {        ["modelID"]=>        string(12) "基础新闻"      }      [1]=>      array(1) {        ["name"]=>        string(12) "基础新闻"      }    }    ["createTime"]=>    array(2) {      ["$gte"]=>      string(19) "2020-02-18 00:00:00"      ["$lte"]=>      string(19) "2020-02-18 23:59:59"    }    ["modelXML"]=>    array(1) {      ["$regex"]=>      string(6) "标题"    }  }
        $filter=$this->parseSearchQuery($q);          //分页显示          $options = [              'skip'=>($page - 1) * $pageSize,              'limit'=>$pageSize,              'sort' => ['createTime' => -1],              'projection'=>['_id'=> False, "modelXML"=> False],          ];          var_dump($filter);          $mongoManger = new MongoDBDriverManager("mongodb://127.0.0.1:27017");          $query = new MongoDBDriverQuery($filter, $options);          $cursor = $mongoManger->executeQuery('.article', $query);          if($cursor->isDead()){              return [];          }          $list=[];          foreach ($cursor as $document) {              $list[]=$document;          }          return $list;