SDK 介绍

最近更新时间:2026-05-07 11:54:32

我的收藏

操作场景

在应用程序中集成云数据库 MongoDB 时,开发者需要通过对应编程语言的驱动(Driver)建立与数据库实例的连接,并执行数据读写操作。云数据库 MongoDB 100%兼容 MongoDB 协议,您可以直接使用 MongoDB 官方驱动或社区主流驱动接入,无需额外适配。
本文档提供各编程语言驱动的连接示例和使用指南,帮助您:
快速接入:提供经过验证的连接代码模板,包含认证配置、连接池设置和错误处理,开箱即用。
规避常见问题:针对腾讯云 MongoDB 的认证机制(authSource=admin)、网络环境(VPC 内网访问)、密码特殊字符转义等要点,在示例中给出明确说明。
生产级实践:除基础连接外,每个语言示例均包含连接池配置建议、异常处理和资源释放等生产环境的关键实践。

连接准备

在使用任何语言驱动连接云数据库 MongoDB 之前,请确保满足以下前提条件:
已创建云数据库 MongoDB 实例,且实例状态为运行中。具体操作,请参见 创建 MongoDB 实例
已准备一台与 MongoDB 实例在同一 VPC 内的云服务器 CVM,作为连接客户端。云数据库 MongoDB 当前默认支持内网访问,可开通外网。
已获取数据库连接信息。在 MongoDB 控制台 的实例详情页,获取以下信息:
连接要素
获取方式
说明
内网地址与端口
实例详情 > 网络配置
格式为 IP:27017,副本集实例提供多个 IP
用户名
默认用户 mongouser,或在数据库管理页面创建
控制台创建的用户统一使用 admin 作为认证库
密码
创建实例时设置
如包含 @:/ 等特殊字符,需进行 URL 编码转义
认证数据库
固定为 admin
URI 中必须指定 authSource=admin

连接 URI 格式

云数据库 MongoDB 支持标准的 MongoDB URI 连接串格式:
// 副本集实例
mongodb://mongouser:<password>@<IP1>:27017,<IP2>:27017,<IP3>:27017/<database>?authSource=admin&replicaSet=<replicaSetName>
// 分片集群实例(连接 mongos 节点):
mongodb://mongouser:<password>@<mongosIP1>:27017,<mongosIP2>:27017/<database>?authSource=admin
说明:
推荐使用副本集连接串(包含多个 IP),驱动可自动完成故障切换,提升可用性。更多信息,请参见 连接与安全规范
如需读写分离,可在 URI 中添加 readPreference=secondaryPreferred 参数,优先从从节点读取数据。
密码中的特殊字符(如 @:/%)需进行 URL 编码,例如 @ 编码为 %40

支持的语言驱动

云数据库 MongoDB 支持所有兼容 MongoDB 协议的官方驱动和社区驱动。以下为各语言的连接示例和推荐驱动版本:
语言/工具
推荐驱动
推荐版本
连接示例
适用场景
Java
MongoDB Java Driver
4.9或以上
企业级后端应用、Spring 生态集成
Python
PyMongo
4.6或以上
数据分析、Web 后端、脚本自动化
Go
MongoDB Go Driver
1.13或以上
高并发后端服务、微服务架构
Node.js
MongoDB Node.js Driver
6.0或以上
Web 后端服务、Serverless 应用
PHP
MongoDB PHP Library
1.17或以上
Web 应用开发
说明:
以上推荐版本为截至本文更新时的建议版本,驱动版本应与您使用的 MongoDB 实例版本兼容。各版本驱动的兼容性详情,请参见 MongoDB 官方驱动兼容性矩阵
如使用其他语言(如 C#、Ruby、Rust 等),请参见 MongoDB 官方驱动列表,连接方式与上述示例类似,核心要点为指定 authSource=admin 认证库。

认证方式

云数据库 MongoDB 支持以下认证方式:
说明:
早期实例可能存在默认用户 rwuser,使用 MONGODB-CR 认证方式。该认证方式已不推荐使用,如您的实例存在 rwuser 用户,建议迁移至 mongouser 或新建用户。
认证方式
适用用户
说明
SCRAM-SHA-1
mongouser 及控制台创建的所有用户
兼容所有版本的默认认证方式,客户端无需额外指定 authMechanism 参数。
SCRAM-SHA-256
控制台创建的用户(MongoDB 4.0及以上版本)
安全性更高的认证方式,4.0+客户端驱动会自动优先协商使用;若需强制使用,需在连接串中显式指定 authMechanism=SCRAM-SHA-256。

连接池配置建议

生产环境中,建议配置连接池以复用数据库连接,避免频繁创建和销毁连接带来的性能开销。以下为通用配置建议:
参数
建议值
说明
maxPoolSize
50 - 200
连接池上限,根据应用并发量和实例规格调整。建议不超过实例最大连接数的80%
minPoolSize
5 - 20
连接池下限,保持一定数量的空闲连接,减少冷启动延迟
connectTimeoutMS
10000
连接超时时间(毫秒),内网环境下10秒足够
socketTimeoutMS
30000
套接字超时时间(毫秒),根据业务查询复杂度调整
maxIdleTimeMS
60000
空闲连接最大存活时间(毫秒),避免长时间闲置被服务端断开
retryWrites
true
启用可重试写入,提升网络抖动场景下的写入可靠性
retryReads
true
启用可重试读取,提升读取可靠性
w
majority
写入关注级别,确保数据写入多数节点后再返回确认

常见问题

驱动版本如何选择?

驱动版本需与 MongoDB 实例版本兼容。选择不当可能导致连接失败或功能异常。请参考以下原则:
1. 优先使用推荐版本:各语言的推荐驱动版本已在上方支持的语言驱动 表格中列出,这些版本经过验证可正常连接云数据库 MongoDB。
2. 查看兼容性矩阵:如需使用其他版本,请参见 MongoDB 官方驱动兼容性矩阵,确认该驱动版本支持您的 MongoDB 实例版本。
3. 避免使用已停维的驱动:以下驱动已停止维护,请迁移至对应的替代驱动:
已停维驱动
替代驱动
mongo-java-driver(Java 3.x)
mongodb-driver-sync(4.x 及以上)
mgo(Go 社区驱动)
go.mongodb.org/mongo-driver(官方驱动)
PyMongo 3.x
PyMongo 4.x

连接超时或响应缓慢如何处理?

连接超时或响应缓慢通常由网络延迟、连接池配置不当或查询性能问题引起。请按以下步骤排查:
1. 检查网络延迟:在 CVM 上执行以下命令,确认到 MongoDB 实例的网络延迟。内网正常延迟应在1ms以内。如延迟过高,请检查 CVM 和 MongoDB 实例是否在同一可用区。
telnet 实例访问IP地址 端口
2. 检查连接池配置:连接池配置不当可能导致连接等待超时。请参考上方 连接池配置建议 调整参数,确保 maxPoolSize 与业务并发量匹配。
3. 检查慢查询:登录 MongoDB 控制台,在实例管理页面选择数据库管理 > 慢日志查询,查看是否存在执行时间过长的查询。如存在慢查询,请优化查询条件或添加索引。
更多信息,请参见 无法连接 MongoDB 解决方法