PHP使用mongo curd操作
1、安装composer require mongodb/mongodb文档地址:https://github.com/mongodb/mongo-php-libraryhttps://docs.mongodb.com/php-library/current/tutorial/install-php-library/2、实例化建立连接$db = (new \MongoDB\Client)->
·
1、安装
composer require mongodb/mongodb
文档地址:
https://github.com/mongodb/mongo-php-library
https://docs.mongodb.com/php-library/current/tutorial/install-php-library/
2、实例化建立连接
$db = (new \MongoDB\Client)->catch_admin->order_list;
建立本地mongo连接,并使用catch_admin数据库,order_list集合
3、curd操作,本案例在tp6中使用mongodb
查询
//查询一条记录
$db -> findOne(['app_id'=>343]);
//查询多条记录
$db -> find(
[
'app_id'=>343,
'price' => ['$lt'=>4900]
]
)->toArray();
//查询多条记录 增加指定字段,排序,筛选等
$res = $db -> find(
[
'app_id'=>343,
'price' => ['$lt'=>4900]
]
, [
'projection' => [
'app_id' => 1,
'price' => 1,
'order_no' => 1,
],
'skip' => 5,
'limit' => 5,
'sort' => ['price' => -1],
]
)->toArray();
//聚合查询
$db = (new \MongoDB\Client)->catch_admin->order_list;
$res = $db -> aggregate([
['$match'=>['price'=>['$lt'=>4900]]],
//['$group'=>['_id'=>'$app_id','price_sum'=>['$sum'=>'$price'],'price_num'=>['$sum'=>1]]],
['$project'=>['_id'=>1,'app_id'=>1,'price'=>1,'order_no'=>1,'pay_time'=>1]],
['$sort'=>['app_id'=>1]],
['$skip'=>5],
['$limit'=>5]
])->toArray();
//查询price 小于4900的,并跳过前五条,只保留5条数据,等同于以下sql:
select id,app_id,price,order_no,pay_time from order_list where price < 4900 order by app_id asc limit 5,5;
添加数据
$db = (new \MongoDB\Client)->catch_admin->order_list;
//插入一条数据 getInsertedId()可省略
$data = Db::table('order_list_mysql')
->order('id','desc')
->find();
$db -> insertOne($data)->getInsertedId();//返回文档id
//批量插入数据 getInsertedIds()可省略
$data = Db::table('order_list_mysql')
->order('id','desc')
->limit(5)
->select()
->toArray();//从数据库中取出5条数据
$res = $db -> insertMany($data)->getInsertedIds();//返回文档的id集合
更新数据
$db = (new \MongoDB\Client)->catch_admin->order_list;
$data = [
'app_id' => rand(1000,2000),
'price' => rand(555555,99999989),
'agent_bili' =>rand(80,120)
];
//更新一条数据
$db -> updateOne(
['app_id'=>494],
['$set'=>$data]
);
//批量更新
$res = $db -> updateMany(
['app_id'=>['$in'=>[383,494]]],//等同于mysql中的where in
['$set'=>$data]//更新的字段数据
);
//删除操作
//删除一条数据
$db -> deleteOne(
['price' =>999999]
)->getDeletedCount();//返回删除结果
//批量删除
$res = $db -> deleteMany(
['agent_bili'=>['$in'=>[900,83]]] //删除条件,等同于sql中的 where agent_bili in (83,900)
)->getDeletedCount();//返回删除的条数
更多推荐
已为社区贡献1条内容
所有评论(0)