標籤:object 比較 參考 target manager option 記錄 except host
最近工作需要,要使用mongodb,這個是使用 pecl 安裝的,跟標準的 mongo 使用還是有區別的,這裡不講區別,只講兩個比較典型的問題該如何處理,具體的文檔大家可以直接參考 php 的官方文檔:http://php.net/manual/zh/book.mongodb.php
問題1: mongodb如何使用 _id 查詢記錄:
這裡的id,是我們在插入一條記錄時,mongo自動產生的id。
(1)從屬記錄從擷取id
function get_oid($query_result = array()){ // 這裡的 $query_result 是查詢到的一條記錄 if(empty($query_result)){ return false; }else{ $id_obj = $query_result[‘_id‘]; $id_array = get_object_vars($id_obj); return $id_array[‘oid‘]; }}
(2)從 _id 查詢相關記錄
$id = new MongoDB\BSON\ObjectID($origin_id); // $origin_id 為記錄中的id$query = array(‘_id‘ => $id); // $query為普通查詢語句查詢條件,利用該條件,就可以查詢出 _id 為指定 id 的記錄
問題2: 如何刪除一個 collection
function drop_collection($db,$collection){ $manager = new MongoDB\Driver\Manager(‘mongodb://‘.$your_hosts.‘/‘, $your_options); // 這裡需要換為你的host option try{ $server = $manager->selectServer( new MongoDB\Driver\ReadPreference( MongoDB\Driver\ReadPreference::RP_PRIMARY ) ); $result = $server->executeCommand( $db, new MongoDB\Driver\Command(["drop" => $collection])); // 這句是實現的關鍵,注意格式 }catch(Exception $E){ return $E; } return $result;}
pcel安裝的mongodb的兩個問題的解決方案