检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
连接数据库 前提条件 连接数据库的弹性云服务器必须和DDS实例之间网络互通,可以使用curl命令连接DDS实例服务端的IP和端口号,测试网络连通性。 curl ip:port 返回“It looks like you are trying to access MongoDB over
连接数据库 通过Python连接实例的方式有无需下载SSL证书连接和用户下载SSL证书连接两种,其中使用SSL证书连接通过了加密功能,具有更高的安全性。 DDS新实例默认关闭SSL数据加密,开启SSL请参考开启SSL。 前提条件 连接数据库的弹性云服务器必须和DDS实例之间网络互通
更多教程 更多开发教程请参见官方文档。 父主题: 应用程序开发教程
驱动侧通用参数配置 连接DDS常见配置项和推荐值 connectTimeoutMS连接超时时间确保驱动程序不会在连接阶段无限期等待。推荐配置: connectTimeoutMS = 10000ms socketTimeoutMS防止TCP通信进入无限等待。推荐配置: 时间为业务最长时间的
常用操作 常用CRUD操作
系统集合 表1 4.0版本系统集合 系统集合 说明 admin.system.roles 存储创建并分配给用户的自定义角色,以提供对特定资源的访问权限。 admin.system.users 存储用户的身份验证凭据以及分配给该用户的所有角色。 admin.system.version
数据库使用 连接数据库 创建和管理数据库 创建和管理集合 创建和管理索引
管理数据库权限 默认权限机制 角色管理 用户管理
数据库使用规范 基础命令规范 开发规范 设计规范
常用CRUD操作 选择对应的数据库版本后,您可以了解MongoDB常用的CRUD操作。详情请参见官方文档。 父主题: 常用操作
用户管理 DDS上用户的权限都是基于角色管理,通过给用户赋予不同的角色来进行差异化的权限控制。 为了给文档数据库实例提供管理服务,您在创建数据库实例时,文档数据库服务会自动为实例创建admin、monitor和backup账户。如果试图删掉、重命名、修改这些账户的密码和权限,会导致出错
默认权限机制 DDS与社区原生的版本相比,对安全进行一系列的增强,以应对越来越严峻的安全挑战。社区原生版本支持不鉴权的方式连接使用数据库的,而DDS采取默认安全策略,连接数据库必须通过鉴权,否则,无法使用数据库。 数据库实例创建后,系统会创建默认的管理员用户rwuser,但是需要需要客户指定
设计规范 命名规范 数据库对象(库名、表名、字段名、索引名)命名建议全部使用小写字母开头,后面跟字母或者数字,数据库对象(库名、表名、字段名、索引名)名字长度建议都不要大于32字节。 数据库名称不能使用特殊字符("",.,$,\,/,*,?,~,#,:,|")和空字符\0,数据库名称不能使用
基础命令规范 查询命令 写入/更新命令 删除命令 父主题: 数据库使用规范
角色管理 DDS通过基于角色的管理来控制用户对数据访问的权限,角色共分为两类:预置角色和自定义角色。 预置角色 自定义角色 创建并管理角色 父主题: 管理数据库权限
创建和管理集合 写入/更新和删除命令的规范请参见写入/更新命令和删除命令。 创建集合 执行db.createCollection(name, options)创建集合。 db.createCollection(<name>, { capped: <boolean>,
创建和管理索引 DDS支持利用索引实现高效查询。如果没有索引,DDS必须执行集合扫描,即扫描集合中的每个文档,以选择那些与查询语句匹配的文档。如果一个查询存在适当的索引,DDS可以使用该索引来限制它必须检查的文档数量。 创建索引的规范及建议请参见索引设计规范。 写入/更新和删除命令的规范请参见写入
创建用户 操作须知 下面所有操作都对权限要求,默认rwuser用户具备所需权限,如果通过客户自定义用户进行管理,则需要关注是否具备操作权限。 使用具备权限的用户(可使用rwuser)连接到数据库实例。 通过createUser创建所需的用户,通过设置合适的角色来控制对应用户的权限。
查询命令 需要通过分析执行过程(查询计划)进行检查并优化,以避免慢查询。 db.collection.find().explain() 请参见性能相关,更多详细内容请参见官方文档。 注意事项 查询的结果,返回的是一个Currsor。Cursor使用完毕后要及时关闭,否则会产生内存堆积
删除命令 删除分为逻辑删除(基于条件的remove删除)和快速删除(dropCollection,dropDatabase)。 用户做了大量删除操作后,实际数据量可能没有多大变化,但磁盘空间使用量增加了。是因为无论是写入、更新还是删除,以及索引插入和删除等操作,在后台实际上都会转成写入