学习记录5----php Mongodb基本操作crul

1.连接mongodb数据库

//root指登录用户名 冒号后面123是密码  @后面是IP:端口号
$manager = new MongoDB\Driver\Manager('mongodb://root:123@0.0.0.0:27017');

//插入数据

//ordered默认是ture,按照顺序执行插入更新数据,如果出错,停止执行后面的,mongo官方叫串行。  如果是false,mongo并发的方式插入更新数据,中间出现错误,不影响后续操作无影响,mongo官方叫并行
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => flase]); 
$bulk->insert(['user_id' => 2, 'name'=>'张三','age'=>10]);
$bulk->insert(['user_id' => 3, 'name'=>'李四','age'=>15]);
$manager->executeBulkWrite('location.user', $bulk); //执行写入 location数据库下的user集合

//修改数据

$bulk->update(
    ['user_id' => 2],
    ['$set'=>['name'=>'哈哈哈']
]); 
//$set相当于mysql的 set,这里和mysql有两个不同的地方,
//1:字段不存在会添加一个字段;
//2:mongodb默认如果条件不成立,新增加数据,相当于insert


//如果条件不存在不新增加,可以通过设置upsert
//db.collectionName.update(query, obj, upsert, multi);

$bulk->update(
    ['user_id' => 5],
    [
        '$set'=>['fff'=>'好好好']
    ],
    ['multi' => true, 'upsert' => false] 
    //multi为true,则满足条件的全部修改,默认为true,如果改为false,则只修改满足条件的第一条
    //upsert为 treu:表示不存在就新增
);

查询数据


//查询
$filter =  ['user_id'=>['$gt'=>0]]; //查询条件 user_id大于0
$options = [
   'projection' => ['_id' => 0], //不输出_id字段
   'sort' => ['user_id'=>-1] //根据user_id字段排序 1是升序,-1是降序
   'limit'=>3,//显示数量
   'skip'=>3//跳过几个数据
];
$query = new MongoDB\Driver\Query($filter, $options); //查询请求
$list = $manager->executeQuery('location.user',$query); // 执行查询 location数据库下的user集合

foreach ($list as $v) {
    var_dump($v); 
}

删除数据

$bulk->delete(['user_id'=>5]);//删除user_id为5的字段
$bulk->delete(['user_id' => 1], ['limit' => 1]);   // limit 为 1 时,删除第一条匹配数据
$bulk->delete(['user_id' => 2], ['limit' => 0]);   // limit 为 0 时,删除所有匹配数据,默认删除所有

参考文章:www.php.cn/faq/417356.html

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!