云数据库客户端SDK(Database)

收藏
我的收藏

Database​

数据库实例​

collection​

支持端:小程序,小游戏。​
获取集合的引用。方法接受一个 name 参数,指定需引用的集合名称。​

参数说明​

name:string
集合名称​

示例语法:小程序,小游戏端。​

在 cloud.database 调用前必须添加 await。​
const db = await cloud.database(); const todosCollection = db.collection('todos');

错误说明​

错误语法1​

const db = await cloud.database(); const todosCollection = db.collection('');

错误信息​

{ errorCode: 156401, errMsg: '集合名必填', }

serverDate​

支持端:小程序,小游戏。​
构造一个服务端时间引用,可用于查询条件,更新字段值或者新增记录。​

参数说明​

offset​
参数​
类型​
默认值​
必填​
说明​
最低支持版本​
offset​
number​
-​
否​
引用的服务端时间偏移量,毫秒为单位,可以是正数或负数​
小程序为2.87.0.0,小游戏为2.88.0.0​

示例语法​

默认采用服务端时间。​
db.collection('todos').add({ name: 'xiaoming', createTime: db.serverDate()}) };
更新字段为服务端时间往后1分钟。​
db.collection('todos').add({ name: 'xiaoming', createTime: db.serverDate({ offset: 60 * 1000 )}) }

错误说明​

offset 传递了非整型。​

错误语法1​

db.collection('todos').add({ name: 'xiaoming', createTime: db.serverDate({ offset: '' as any )}) };

错误信息​

{ errMsg: 'serverDate值必须是一个整型', errorCode: 156401 }

Regexp​

构造正则表达式,仅需在普通 js 正则表达式无法满足的情况下使用。​

options 参数说明​

options 支持 i, m, s 这三个 flag,注意 JavaScript 原生正则对象构造时仅支持其中的 i, m 两个 flag,因此需要使用到 s 这个 flag 时必须使用 db.RegExp 构造器构造正则对象。flag 的含义见下表:​
flag​
说明​
i​
大小写不敏感​
m​
跨行匹配;让开始匹配符 ^ 或结束匹配符 $ 时除了匹配字符串的开头和结尾外,还匹配行的开头和结尾​
s​
让 . 可以匹配包括换行符在内的所有字符​

基础用法示例​

// 原生 JavaScript 对象 const res = await db .collection('regdb') .where({ name: /ckq/i, }) .get(); // 数据库正则对象 const res = await db .collection('regdb') .where({ name: db.RegExp({ regexp: 'ckq', options: 'i', }), }) .get(); // 用 new 构造也是可以的 const res = await db .collection('regdb') .where({ name: new db.RegExp({ regexp: 'ckq', options: 'i', }), }) .get();

错误说明​

错误语法1:​

await db .collection('dbcommand_error_todos') .where({ name: db.RegExp({}) }) .get();

错误信息​

// 错误信息 { "errorCode": 156401, "errMsg": "regexp 值必须有匹配项" }

错误语法2:​

await db .collection('dbcommand_error_todos') .where({ name: db.RegExp() }) .get();

错误信息​

// 错误信息 { "errorCode": 156401, "errMsg": "regexp 值必须是个对象" }

兼容性说明​

在下方 附实际云数据库语句 写实际 Regexp 代码。​
// 版本比较 canUseCommand(version1) { const compareVersion = '3.39.0.0'; const v1 = version1.split('.').map(Number); const v2 = compareVersion.split('.').map(Number); for (let i = 0; i < v1.length; i++) { if (v1[i] > v2[i]) { return true; } else if (v1[i] < v2[i]) { return false; } } return true; }; if(canUseCommand(res.SDKUpdateVersion) { // 附实际云数据库 RegExp 语句 await db .collection('dbcommand_error_todos') .where({ name: db.RegExp() }) .get(); }