PHP 操作 MongoDB

zmxyzmxy1234發表於2020-05-26

PHP的MongoDB驅動中文文件:www.php.cn/manual/view/4.html

PHP的MongoDB驅動官方文件:www.php.net/manual/zh/book.mongodb...

有些細節都沒寫全,如想學習請閱讀官方文件!

PHP連線MongoDB:

// 建立連線
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

// MongoDB 寫操作類
$bulk = new MongoDB\Driver\BulkWrite;

// 建立一個MongoDB ObjectId,如果傳入的是字串,它將嘗試將其轉化為ObjectId型別
$id = new MongoDB\BSON\ObjectId();

增刪改查:

// 增
// MongoDB預設將 _id 當作主鍵,如果沒有它會自動建立,所以這裡的_id可以不填
$bulk->insert(['_id'=>new MongoDB\BSON\ObjectId, 'name'=>'我是遺失的美好灬', 'age'=>18]);

// executeBulkWrite() 執行一個或多個寫操作 引數一 是名稱空間( 資料庫.集合),引數二 是寫操作物件 BulkWrite
$result = $manager->executeBulkWrite('cxfs.hahah', $bulk);


// 改
/* 
update()向批次新增更新操作 
引數1:filter 過濾器(為空則匹配所有)
引數2:newObj 新物件,包含更新運算子(例如$set)或替換文件(即只有欄位:值表示式)的文件。
引數3:option 
      [
         multi: 如果為FALSE,則僅更新第一個匹配的文件,為TRUE更新所有匹配的文件。如果newObj是替換文件,則此選項不能為TRUE。
        upsert:如果過濾器與現有文件不匹配,請插入單個文件。如果文件是替換文件(即沒有更新運算子),則將從newObj建立該文件;否則,newObj中的運算子將應用於過濾以建立新文件
      ]
   */
 $bulk->update(
       ['age'=>19, 'hh'=>2],
       ['$set' => ['name' => '菜鳥19號']],
       ['multi' => true, 'upsert' => true]
  );

  $rs = $manager->executeBulkWrite('xxj.runoob', $bulk);

// 刪
    $bulk->delete(['age'=>19]);
    $rs = $manager->executeBulkWrite('xxj.runoob', $bulk);
// 查
  //$filter是刪選條件
    $filter = [];

    $query = new MongoDB\Driver\Query($filter);
    $rs = $manager->executeQuery('xxj.runoob', $query);
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章