PHP7/5中 MongoDB的正則匹配操作
阿新 • • 發佈:2018-12-24
一、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形式上有所不同。