1. 程式人生 > >PHP7/5中 MongoDB的正則匹配操作

PHP7/5中 MongoDB的正則匹配操作

一、PHP7 操作MongoDB

1.以下操作中包含對欄位進行正則查詢!網上少見。

//new 一個Client 並選擇資料庫和集合
$collection = new \MongoDB\Client("mongodb://使用者:密碼@dmongodb地址/"))->selectDatabase('your_database')->selectCollection('your_collection');
$searchKey = "mike";
$query = [];
//欄位'$regex'的值為正則表示式。
$query ['name'] = [
                    '$regex'
=> '.*'. $searchKey . '.*', '$options' => 'i' ]; //查詢設定。skip和limit可用來做分頁,意義與muysql中一致。 $options = [ 'skip'=>8, 'limit'=>10, 'sort'=>['_id'=> -1] ]; $cursor
= $collection->find($query,$options);
  • 以上語句將會在資料庫 your_database 中的 your_collection 集合查詢:”name” 欄位中包含有“mike”字元的資料,並且按照欄位“_id”倒序,跳過前8條,獲取10條資料。注意!$cursor是一個遊標。

二、PHP5中使用正則查詢

$collection  = new MongoClient("mongodb://使用者:密碼@mongodb地址")->selectDB("data")->selectCollection("collection");
$query
= []; //new MongoRegex類時傳入引數為正則表示式 $query['$or'] = [ ['name'=>new MongoRegex("/.*".jack.".*/i")], ['info'=>new MongoRegex("/.*".jane.".*/i")], ]; $cursor = $collection->find($query)->sort(['_id'=>-1])->skip(8)->limit(10);
  • 在資料庫data的collection集合中查詢 “name”欄位包含有jack或者“info”欄位包含有jane的資料,咱以“_id”欄位降序,跳過前8條取10條。由此可見P7和P5中使用MongoDB形式上有所不同。