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);

如果该文章对您有帮助,请您点个推荐,感谢。

posted @   itbsl  阅读(2108)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示