Larvel 操作 MongoDB(對內嵌陣列增刪改)

zmxyzmxy1234發表於2020-05-26

PHP的MongoDB驅動中文文件

PHP的MongoDB驅動官方文件

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

普通的增刪改查與mysql驅動操作一樣

$rs = DB::collection('集合名字')->insertGetId($param);
$rs = DB::collection('集合名字')->insert($param);$rs = DB::collection('集合名字')->where(["_id"=>1])->delete();$rs = DB::collection('集合名字')->where(["_id"=>1])->update(['name'=<'遺失的美好']);$result = DB::collection('集合名字')->where(["_id"=>1])->get();
// 分頁函式
$results = DB::collection('集合名字')->paginate(10);
// 這樣也能做到分頁 還有排序 
orderBy()  排序函式,
skip()    跳過幾條 
limit()    限制取出幾條
$rs = DB::collection('集合名字')->orderBy('age','asc')->skip(10))->limit(10)->get();

對內嵌陣列進行增刪改,首先要知道:

MongoDB運算子

// 插入陣列 $addToSet 插入時如果已經存在相同的則不插入    
$rs = DB::collection('user_files_folder')->update(['$addToSet'=>['child'=>['name'=>'二傻子']])

// 插入陣列 $push 插入時如果已經存在相同的仍然插入
$rs = DB::collection('user_files_folder')->update(['$push'=>['child'=>['name'=>'二傻子']])$rs = DB::collection('user_files_folder')->update(['$pull'=>['child'=>['name'=>'二傻子']])// 注意,這where條件如果需要多重結構則可以用.連線
$set是修改運算子,對應修改物件(陣列)
修改物件如果需要多重結構也可以用.連線,這裡的$符號代表對應的鍵(因為這裡的資料結構是一個陣列,$代表對應的序號,也可以寫死成 0-9之類的數字)

DB::collection('stock')->where(['info.id'=>"118b110212"])->update([
    $set'=>[
        'info.$.id'=>"118b110jkjkjk"
     ]
]);
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章