PHP7操作MongoDB
PHP7里面使用如下库,操作比较复杂
PHP7连接MongoDB语法如下:
//参数规则: mongodb://账号:密码@IP:端口/数据库
$manager = new \MongoDB\Driver\Manager("mongodb://php:123456@localhost:27017/php");
插入数据
//1.连接MongoDB
$manager = new \MongoDB\Driver\Manager("mongodb://php:123456@localhost:27017/php");
//2.创建一个BulkWrite对象
$bulk = new \MongoDB\Driver\BulkWrite();
$bulk->insert(['name' => 'bashlog', 'age' => 26, 'email' => 'bashlog@foxmail.com']);
$bulk->insert(['name' => 'itbsl', 'age' => 12, 'email' => 'itbsl@foxmail.com']);
//3.执行插入
$manager->executeBulkWrite('php.stu', $bulk);
查看插入情况
查询数据
//1.连接MongoDB
$manager = new \MongoDB\Driver\Manager("mongodb://php:123456@localhost:27017/php");
//2.创建一个Query对象
$filter = ['age' => ['$gt' => 5]];
$options = [
'sort' => ['age' => -1]
];
$query = new \MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('php.stu', $query);
foreach ($cursor as $document) {
var_dump($document);
}
更新数据
//1.规则:mongodb://账号:密码@IP:端口/数据库
$manager = new \MongoDB\Driver\Manager("mongodb://php:123456@localhost:27017/php");
//2.创建一个BulkWrite对象
$bulk = new \MongoDB\Driver\BulkWrite();
$bulk->update(
['age' => 12],
['$set' => ['name' => 'kitty', 'age' => 122]],
['multi' => false, 'upsert' => false]
);
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('php.stu', $bulk, $writeConcern);
删除数据
//1.规则:mongodb://账号:密码@IP:端口/数据库
$manager = new \MongoDB\Driver\Manager("mongodb://php:123456@localhost:27017/php");
//2.创建一个BulkWrite对象
$bulk = new \MongoDB\Driver\BulkWrite();
//limit为1时,删除第一条匹配的数据
//limit为0时,删除所有匹配数据
$bulk->delete(['age' => 122], ['limit' => 1]);
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('php.stu', $bulk, $writeConcern);
如果该文章对您有帮助,请您点个推荐,感谢。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通