tencent cloud

云数据库 MongoDB

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
应用场景
集群架构
产品规格
产品功能
地域和可用区
名词解释
购买指南
计费概述
产品定价
计费公式
欠费说明
备份空间计费
变配计费说明
快速入门
快速创建实例
连接 MongoDB 实例
读写数据库
操作指南
访问管理
管理实例
节点管理
版本升级
网络配置
系统监控
备份与回档
数据库审计
数据安全
SSL 认证
日志管理
数据库管理
多可用区部署
只读灾备
参数配置
回收站
任务管理
诊断优化
数据迁移指引
实践教程
索引优化解决读写性能瓶颈
分片集群 Mongos 负载不均解析及应对方案
分片集群使用注意事项
MongoDB 协议实例读写示例
基于 CVM 连接 MongoDB 进行数据导入导出的方法
3.6版本实例反复创建和删除同名数据库时报错怎么办
无法连接 MongoDB 解决方法
删减分片任务:进度确认与异常排查指南
性能调优
运维开发指南
开发规范
3.2版本分片集群命令支持情况
3.6版本命令支持情况
开发运维
故障处理
慢查询增多
连接数超限
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Backup APIs
Account APIs
Other APIs
Task APIs
Introduction
Data Types
Error Codes
SDK 参考
Shell连接示例
PHP 连接示例
Node.js连接示例
Java 连接示例
Python连接示例
Python 读写示例
Go 连接示例
PHP 重连示例
产品性能
测试环境
测试方法
测试结果
常见问题
费用相关问题
功能特性问题
分片集群问题
实例相关问题
回档备份问题
连接相关问题
数据迁移问题
其他常见问题
相关协议
服务等级协议
Terms of Service
词汇表
联系我们

PHP 连接示例

PDF
聚焦模式
字号
最后更新时间: 2025-01-06 16:02:32

相关说明

云数据库 MongoDB 默认提供 rwuser 和 mongouser 两个用户名,分别支持 MONGODB-CR 和 SCRAM-SHA-1 两种认证方式,对于这两种认证方式,连接 URI 需要做不同的处理,具体参见 连接实例
在 PHP 里,有驱动可用于连接操作 MongoDB 数据库:mongodb(PHP 官网文档)- MongoDB 官方推荐 mongodb 驱动,但需要 PHP 5.4 以上版本。
下面用上述驱动演示连接云数据库 MongoDB 并进行读写。

使用 mongodb 驱动

mongodb 安装方法参考 官方安装步骤
mongodb 驱动可以用 MONGODB-CR 和 SCRAM-SHA-1 两种认证方式,具体参见 连接实例
示例代码:
<?php
// 拼接连接 URI
$uri = 'mongodb://mongouser:thepasswordA1@10.66.187.127:27017/admin';
$manager = new MongoDB\\Driver\\Manager($uri);

// 准备写入数据
$document1 = [
'username' => 'lily',
'age' => 34,
'email' => 'lily@qq.com'
];

// 驱动预处理数据,这里可以看到 MongoDB 的 _id 是驱动生成的
$bulk = new MongoDB\\Driver\\BulkWrite;
$_id1 = $bulk->insert($document1);

$result = $manager->executeBulkWrite('tsdb.table1', $bulk);

// 或者根据实际需要使用下面的代码确保数据写入到大多数节点
// $writeConcern = new MongoDB\\Driver\\WriteConcern(MongoDB\\Driver\\WriteConcern::MAJORITY, 1000);
// $result = $manager->executeBulkWrite('testdb.testcollection', $bulk, $writeConcern);

// 查询
$filter = ['_id' => $_id1];
$query = new MongoDB\\Driver\\Query($filter);
$rows = $manager->executeQuery('tsdb.table1', $query); // 也可选择优先从从库读
foreach($rows as $r){
print_r($r);
}


输出:
stdClass Object
(
[_id] => MongoDB\\BSON\\ObjectID Object
(
[oid] => 582c001618c90a16363abc31
)

[username] => lily
[age] => 34
[email] => lily@qq.com
)

推荐使用 PHPLIB 库(基于 mongodb 驱动封装)

使用 mongodb 驱动推荐搭配 PHPLIB 使用,查看相关文档
PHPLIB 的安装方法参考 官方安装步骤,请注意 PHPLIB 依赖与 mongodb 驱动。
示例代码:
<?php
require_once __DIR__ . "/vendor/autoload.php";

// 初始化
$mongoClient = new MongoDB\\Client('mongodb://mongouser:thepasswordA1@10.66.187.127:27017/admin');

// 使用 demo 库下的 users 集合
$collection = $mongoClient->demo->users;

// 写入一条数据
$insertOneResult = $collection->insertOne(['name' => 'gomez']);

printf("Inserted %d document(s)\\n", $insertOneResult->getInsertedCount());
var_dump($insertOneResult->getInsertedId());

// 查询数据
$document = $collection->findOne(['name' => 'gomez']);

var_dump($document);

输出:
Inserted 1 document(s)
object(MongoDB\\BSON\\ObjectID)#11 (1) {
["oid"]=>
string(24) "57e3bf20bf605714a53e69c1"
}
object(MongoDB\\Model\\BSONDocument)#16 (1) {
["storage":"ArrayObject":private]=>
array(2) {
["_id"]=>
object(MongoDB\\BSON\\ObjectID)#14 (1) {
["oid"]=>
string(24) "57e3bf20bf605714a53e69c1"
}
["name"]=>
string(5) "gomez"
}
}


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈