PHP code example of zusux / php-mongodb

1. Go to this page and download the library: Download zusux/php-mongodb library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

zusux / php-mongodb example snippets


composer 

插入数据
$data = $mongo
    ->database("shop")
    ->table("users")
    ->insert(["id"=>3,"name"=>"张三","age"=>20,"x"=>1],false,$insertId);
var_dump($data);
var_dump($insertId);

//用原先的id作为主键
$data = $mongo
    ->database("shop")
    ->table("users")
    ->insert(["id"=>4,"name"=>"张三","age"=>20,"x"=>2],"id",$insertId);
var_dump($data);
var_dump($insertId);

查询一条数据
$data = $mongo->database("test")
    ->table("sites")
    ->field(["name"]) //查询字段
    ->unfield(["_id"]) //去除字段
    ->sort("x",true) //排序
    ->offset(0) //跳过第几个
    ->find(
        ["name"=>"aaa"],true
    );

//使用mongodb主键查询
$data = $mongo
    ->database("shop")
    ->unfield(["_id"])
    ->table("users")
    ->find(['_id'=>new MongoDB\BSON\ObjectID("60515b433c540000ff007902")]);
var_dump($data);


//使用自定义主键查询 
$data = $mongo
    ->database("shop")
    ->unfield(["_id"])
    ->table("users")
    ->find(['_id'=>intval(4)]);
var_dump($data);


统计数据数量

$data = $mongo->database("shop")
    ->table("users")
    ->field(["name"])
    ->unfield(["_id"])
    ->limit(1)
    ->page(0)
    ->sort("x",true)
    ->count(
        ["name"=>"aaa"]
    );
var_dump($data); // int(1)


//删除数据
$data = $mongo->database("shop")
    ->table("users")
    ->delete(
        ["name"=>"李四"],
        1,
        2
    );
var_dump($data);


//更新数据
$data = $mongo
    ->database("shop")
    ->unfield(["_id"])
    ->table("users")
    ->update(
        ['_id'=> intval(4)],
        [
            "abc"=>111
        ]
    );
var_dump($data);


//aggregate
$pipeline = [
    ['$match' => ['age' => 25]], //where 语句
    ['$group' => ['_id' => '$age',"sum"=>['$sum'=> 1]]], //select count(*) from xx where age = 25 group by age
];
$data = $mongo
    ->database("shop")
    ->table("users")
    ->aggregate($pipeline);
var_dump($data);


执行 command

$opts = [
    'insert'=>'users',// collection表名
    'documents'=> [
        [ 'name'=> "abc123", 'status'=> "A" ],
        [ 'name'=> "abc12322", 'status'=> "B" ],
    ],
    'ordered'=>true,
    'writeConcern'=>[
        "w"=>"majority",
        "wtimeout"=>5000
    ]
];
$data = $mongo->execCommand("shop",$opts);
var_dump($data);