PHP操作MongoDB(增删改查)

单条插入

$bulk = new MongoDB\Driver\BulkWrite;
$document = ['_id' => new MongoDB\BSON\ObjectID, 'name' => 'hello word'];
$bulk->insert($document);
$manager = new MongoDB\Driver\Manager("mongodb://192.168.110.30:27017");
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('my.hello', $bulk, $writeConcern);

批量插入

$manager = new MongoDB\Driver\Manager("mongodb://192.168.110.30:27017");
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['id' => 1, 'name'=>'php', 'url' => 'http://www.php.com']);
$bulk->insert(['id' => 2, 'name'=>'java', 'url' => 'http://www.java.com']);
$bulk->insert(['id' => 3, 'name'=>'css', 'url' => 'http://www.css.com']);
$result = $manager->executeBulkWrite('biancheng.cate', $bulk);

查询

$filter=[
  'id'=>['$gt'=>1]
];
$options=[
  'projection'=>[
  '_id'=>0
  ],
  'sort'=>['x'=>-1]
];
$manager = new MongoDB\Driver\Manager("mongodb://192.168.110.30:27017");
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('biancheng.cate', $query);

foreach ($cursor as $document) {
  echo "<pre>";
  print_r($document);
}

更新数据

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
 ['id' => 2],
 ['$set' => ['name' => 'goLang', 'url' => 'tool.goLang.com']],
 ['multi' => false, 'upsert' => false]
);
$manager = new MongoDB\Driver\Manager("mongodb://192.168.110.30:27017");
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('biancheng.cate', $bulk, $writeConcern);

删除

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->delete(['id' => 1], ['limit' => 1]); // limit 为 1 时,删除第一条匹配数据
$bulk->delete(['id' => 2], ['limit' => 0]); // limit 为 0 时,删除所有匹配数据

$manager = new MongoDB\Driver\Manager("mongodb://192.168.110.30:27017");
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('biancheng.cate', $bulk, $writeConcern);
本作品采用《CC 协议》,转载必须注明作者和本文链接
有梦想的人睡不着,没有梦想的人睡不醒。
讨论数量: 11

mongo能不用尽量别用,自己水平有限哈

1个月前 评论
giao哥 1个月前
HelloWorld-Q (楼主) 1个月前
mshx 1个月前
lun1bz (作者) 1个月前
lun1bz (作者) 1个月前
lun1bz (作者) 1个月前
mshx 1个月前
mshx 1个月前
lun1bz (作者) 1个月前
lun1bz (作者) 1个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
文章
77
粉丝
12
喜欢
103
收藏
196
排名:230
访问:2.0 万
私信
所有博文
博客标签
redis
1
php
1
laravel
7
docker
3
orm
2
sync
1
pivot
1
detach
2
attach
2
算法
1
递归
1
多对多
1
lnmp环境搭建
1
GO变量
1
GO数据类型
1
IOC注入反转
1
IOC容器的绑定解析过程(绑定单例)
1
原生微信网页授权登录(natapp穿墙)
1
VMwareNAT网卡配置
1
MySQL基础架构
1
redis 主从搭建
1
Sentinel哨兵模式解决故障转移
1
elasticsearch安装
1
elasticsearch集群安装3台
1
安装kibana
1
必须了解的mysql三大日志-binlog、redo log和undo log
1
何处理数据恢复 数据丢失 面试tx的架构师的岗位问的
1
分库分表插入数据
1
创建分库分表(在主从复制的基本上)
1
分库分表总结
1
mysql总结
1
haproxy状态检测脚本(完成高可用)
1
mysql高可用衡搭建(Keepalived)
1
mysql负载均衡搭建(haproxy)
1
mysql主从恢复数据一致性(pt工具-t-table-checksum和pt-table-sync)
1
终于解决了《====》记一次mysql热备份xtrabackup(没有解决问题)
1
mysql事务
1
MYSQL8.0安装
1
Redis-cluster分布式集群搭建部署
1
比Redis-cluster还好的redis分布式集群(twemproxy)
1
Redis缓存穿透/缓存雪崩/缓存击穿(案例:产生的原因 解决方案利/弊)
1
数据结构之MySQL独爱B+树(二叉树、AVL树、红黑树、B树对比)
1
B-tree
1
B+tree
1
Mycat实现mysql的负载均衡读写分离
2
mysql双主双从 搭建配置
1
mycat 双主双从-负载均衡-高可用
1
Mycat垂直分库
1
记一次mysql高可用技术分享
1
【rabbitmq】安装ampq的扩展的踩坑总结
1
PHP操作MongoDB(增删改查)
1