数据库 API

小程序·云开发提供了丰富的数据库操作 API,此处是数据库小程序端的 API 参考文档。

数据库 API 都是懒执行的,这意味着只有真实需要网络请求的 API 调用才会发起网络请求,其余如获取数据库、集合、记录的引用、在集合上构造查询条件等都是不会触发网络请求的。

请求

表示链式调用终结,触发网络请求的 API 有如下几个:

API 说明
get 获取集合 / 记录数据
add 在集合上新增记录
update 更新集合 / 记录数据
set 替换更新一个记录
remove 删除记录
count 统计查询语句对应的记录条数

引用

获取引用的 API 有如下几个:

API 说明
database 获取数据库引用,返回 Database 对象
collection 获取集合引用,返回 Collection 对象
doc 获取对一个记录的引用,返回 Document 对象

数据库

在数据库 (Database) 对象上有如下字段:

字段 说明
command 获取数据库查询及更新指令,返回 Command
serverDate 构造服务端时间
Geo 获取地理位置操作对象,返回 Geo 对象

db.Geo 拥有字段如下:

字段 说明
Point
LineString 线段
Polygon 多边形
MultiPoint 点集合
MultiLineString 线段集合
MultiPolygon 多边形集合

集合

在集合 (Collection) 对象上有如下 API:

API 说明
doc 获取对一个记录的引用,返回 Document 对象
add 在集合上新增记录
where 构建一个在当前集合上的查询条件,返回 Query,查询条件中可使用查询指令
orderBy 指定查询数据的排序方式
limit 指定返回数据的数量上限
skip 指定查询时从命中的记录列表中的第几项之后开始返回
field 指定返回结果中每条记录应包含的字段

记录/文档

在记录/文档 (Document) 对象上有如下 API:

API 说明
get 获取记录数据
update 局部更新数据
set 替换更新记录
remove 删除记录
field 指定返回结果中记录应包含的字段

查询指令

Command (db.command) 对象上有如下查询指令:

类别 API 说明
比较 eq 字段是否等于指定值
neq 字段是否不等于指定值
lt 字段是否小于指定值
lte 字段是否小于或等于指定值
gt 字段是否大于指定值
gte 字段是否大于或等于指定值
in 字段值是否在指定数组中
nin 字段值是否不在指定数组中
逻辑 and 条件与,表示需同时满足另一个条件
or 条件或,表示如果满足另一个条件也匹配
nor 表示需所有条件都不满足
not 条件非,表示对给定条件取反
字段 exists 字段存在
mod 字段值是否符合给定取模运算
数组 all 数组所有元素是否满足给定条件
elemMatch 数组是否有一个元素满足所有给定条件
size 数组长度是否等于给定值
地理位置 geoNear 找出字段值在给定点的附近的记录
geoWithin 找出字段值在指定区域内的记录
geoIntersects 找出给定的地理位置图形相交的记录

更新指令

Command (db.command) 对象上有如下更新指令:

类别 API 说明
字段 set 设置字段为指定值
remove 删除字段
inc 原子操作,自增字段值
mul 原子操作,自乘字段值
min 如果字段值小于给定值,设为给定值
max 如果字段值大于给定值,设为给定值
rename 字段重命名
数组 push 往数组尾部增加指定值
pop 从数组尾部删除一个元素
shift 从数组头部删除一个元素
unshift 往数组头部增加指定值
addToSet 原子操作,如果不存在给定元素则添加元素
pull 剔除数组中所有满足给定条件的元素
pullAll 剔除数组中所有等于给定值的元素

聚合

参见聚合文档

异常

API reject 时返回的 Error 对象均含以下两个字段:

字段 类型 说明
errCode number 错误码
errMsg string 错误信息