跳到主要内容

连接自有 MongoDB

您可以将腾讯云 MongoDB 数据库接入云开发平台,复用现有数据库资源,降低数据迁移成本。

接入腾讯云数据库后,您可以:

  • 无缝集成:直接管理现有数据库中的数据,无需数据迁移
  • 数据模型:基于现有集合快速生成数据模型,自动化数据管理
  • SDK 支持:使用云开发 Web SDK / Node SDK / 小程序 SDK 统一访问
  • 安全可控:数据保留在您的数据库中,完全掌控数据安全
注意

当前仅支持连接「腾讯云 MongoDB 数据库(上海地域)」,暂不支持其他云服务商或自建的 MongoDB 数据库。

前置条件

在配置腾讯云 MongoDB 数据库连接前,请确保:

检查项要求
数据库来源必须是腾讯云 MongoDB 数据库实例
网络访问数据库具有公网访问能力或已配置内网访问
用户权限已创建专用数据库用户账号,具备集合操作权限
防火墙配置数据库防火墙已开放相应端口(MongoDB 默认 27017)
IP 白名单已配置云开发服务 IP 白名单(见文档末尾)

创建连接配置

1. 进入配置页面

访问 云开发平台/文档型数据库,点击顶部「新增连接」按钮

文档型数据库新增页面

2. 填写连接信息

参数说明必填
配置名称自定义名称,用于在平台中识别此连接
配置标识英文标识符,用于 SDK 中指定连接(如 my-mongodb
数据库名要连接的目标数据库名称
用户名数据库连接用户名
密码数据库连接密码
连接参数额外的 MongoDB 连接参数(如 authSource=admin
超时时间连接和查询的超时时间(单位:秒)

使用方式

接入自有 NoSQL 数据库后,可通过以下两种方式操作数据。

方式一:直接操作数据库集合

直接通过 SDK 进行 CRUD 操作

小程序限制

小程序中使用 wx.cloud.database() 调用的是默认数据库实例。wx 原生 API 暂时不支持指定连接其他数据库实例。

如需访问腾讯云 MongoDB 数据库

  • 在云开发控制台将腾讯云 MongoDB 配置设置为「默认实例」
  • 通过 JS SDK小程序适配器 进行访问自有数据库

JSSDK+小程序适配器示例

import cloudbase from '@cloudbase/js-sdk';
import adapter from '@cloudbase/adapter-wx_mp';

// 使用微信小程序适配器
cloudbase.useAdapters(adapter);

const app = cloudbase.init({
env: 'your-env-id', // 替换为您的环境ID
region: "ap-shanghai", // 不指定 region 时,默认使用 ap-shanghai
});

// 指定访问腾讯云 MongoDB 实例
const db = app.database({
instance: "my-mongodb", // 配置标识
database: "test",
});

const result = await db.collection("users").where({
status: "active"
}).get();
参数说明
  • instance:创建连接配置时填写的「配置标识」
  • database:目标数据库名称
  • 查询语法请参考:Web SDKNode SDK

方式二:使用数据模型

适用于需要结构化数据管理、自动校验、关联查询等场景。

1. 创建数据模型

访问 云开发平台/文档型数据库/连接管理,在对应连接配置处点击「数据模型」

选择现有集合,系统将自动生成对应的数据模型。

2. 操作数据模型

// 引入 SDK
const { init } = require("@cloudbase/wx-cloud-client-sdk");

wx.cloud.init({
env: "your-env-id", // 替换为你的环境ID
});

const client = init(wx.cloud);
const models = client.models;

// 创建数据(假设已创建 todos 模型)
const { data, error } = await models.todos.create({
data: {
title: "学习云开发",
completed: false,
},
});

// 查询数据
const todos = await models.todos.findMany({
where: {
completed: false,
},
orderBy: {
createdAt: "desc",
},
});

console.log(todos);
提示

详细使用方法请参考 数据模型文档

常见问题

数据会被同步到云开发吗?

不会。连接自有数据库后:

  • 数据存储:所有数据仍保留在您的数据库中
  • 访问方式:云开发 SDK 直接连接您的数据库进行操作
  • 数据控制:您完全掌控数据的存储和备份