1. 連接MongoDB 註:庫、表無需手動創建,選擇後自動創建 2. CRUD操作 insert(數據) 插入數據(必是一個數組) find(查找條件,查找欄位) 查詢數據 update(查找條件,更新之後的內容=>文檔內容) 更新數據 註: 若不存在hobby欄位,則創建該欄位 預設更新會進行替 ...
1. 連接MongoDB
<?php //1.連接到MongoDB $host = "127.0.0.1"; $port = 27017; $server = "mongodb://$host:$port"; $mongodb = new MongoClient($server); echo "<pre>"; var_dump($mongodb); //2.選擇資料庫 $db = $client -> hytc; var_dump($db); //3.選擇數據表 $collection = $db -> user; var_dump($collection);
註:庫、表無需手動創建,選擇後自動創建
2. CRUD操作
insert(數據) 插入數據(必是一個數組)
//插入文檔(關聯數組) $data = ["name"=>"小明","age"=>10,"hobby"=>"swim"]; $result = $collection -> insert($data);
echo "<pre>";
var_dump($result);
find(查找條件,查找欄位) 查詢數據
//查詢數據(返回的是cursor游標,資源) $condition = ['name'=>'小明']; $fields = [ '_id' => false, //不查詢id 'name' => true, //查詢name 'hobby' => true //查詢hobby ]; $result = $collection -> find($condition,$fields); foreach($result as $key => $value){ echo "<pre>"; var_dump($value); }
update(查找條件,更新之後的內容=>文檔內容) 更新數據
//更新數據 $condition = ['name'=>'小明']; $new_doc = [ '$set' => ["hobby" => "swim"] ]; $result = $collection -> update($condition,$new_doc); echo "<pre>"; var_dump($result);
註:
- 若不存在hobby欄位,則創建該欄位
- 預設更新會進行替換操作,可通過屬性修改器進行修改而不是替換
- 若有多條記錄符合更新條件,預設只會更新第一個數據
- 若需更新符合更新條件的所有記錄,則設置該函數的第三個參數:[“multiple”=>true]
//更新數據 $condition = ['age'=>'20']; $new_doc = [ '$set' => ["hobby" => "swim"] ]; $result = $collection -> update($condition,$new_doc,['multiple'=>true]); echo "<pre>"; var_dump($result);
remove(查找條件) 刪除數據
//刪除數據 $condition = ['name'=>'小明']; $result = $collection -> remove($condition);
3. MongoDB 屬性修改器
- 用來對文檔的某個屬性進行修改
$set 設置
- 不存在屬性則添加, 存在屬性則修改
$data = ["name"=>"小紅","age"=>12,"hobby"=>"dance"];
$collection -> insert($data);
$result = $collection -> find([],['_id'=>false]);
foreach($result as $key => $value){
echo "<pre>";
var_dump($value);
}
- 修改某個欄位、屬性的值
$new_doc = [
'$set' => ["hobby" => "swim"]
];
$unset 刪除某個屬性
$condition = ['name'=>'小明'];
$new_doc = [
'$unset' => ["hobby" => "swim"]
];
$collection -> update($condition,$new_doc);
$inc 遞增某個屬性
$condition = ['name'=>'小明'];
$new_doc = [
'$inc' => ['age' => 20]
];
$collection -> update($condition,$new_doc);
//原先age=10,現為30
$push 壓入元素到數組
- 操作的屬性需要是數組
$data = ['name'=>'小剛','age'=>14,'hobby'=>['read','climb']];
$collection -> insert($data);
- 向hobby屬性(元素),添加元素
$condition = ['name'=>'小剛'];
$new_doc = [
'$push' => ['hobby' => 'sing']
];
$collection -> update($condition,$new_doc);
$pushAll 同時壓入多個元素到數組
$condition = ['name'=>'小剛']; $new_doc = [ '$push' => ['hobby' => 'sing','hobby' => 'jump'] ]; $collection -> update($condition,$new_doc);
$addToSet 添加到集合, 不能添加重覆元素
$pull 刪除數組中的某一個元素
$pullAll 刪除多個元素
$pop 彈出元素.