云数据库客户端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(); }