阅读(2454)
赞(0)
SDK数据库 Collection·构建查询条件
2020-07-25 10:22:11 更新
Collection.where(condition: Object): Collection
支持端:小程序 , 云函数 , Web
指定查询条件,返回带新查询条件的新的集合引用
参数
condition: Object
查询条件
返回值
Collection
示例代码
const _ = db.command
const result = await db.collection('todos').where({
price: _.lt(100)
}).get()
const _ = db.command
const result = await db.collection('todos').where({
price: _.lt(100)
}).get()
Collection.limit(value: number): Collection
支持端:小程序 , 云函数 , Web
指定查询结果集数量上限
参数
value: number
返回值
Collection
说明
limit 在小程序端默认及最大上限为 20,在云函数端默认及最大上限为 1000
示例代码
db.collection('todos').limit(10)
.get()
.then(console.log)
.catch(console.error)
Collection.orderBy(fieldPath: string, string: order): Collection
支持端:小程序 , 云函数 , Web
指定查询排序条件
参数
fieldPath: string
string: order
返回值
Collection
说明
方法接受一个必填字符串参数 fieldName 用于定义需要排序的字段,一个字符串参数 order 定义排序顺序。order 只能取 asc 或 desc。
如果需要对嵌套字段排序,需要用 "点表示法" 连接嵌套字段,比如 style.color 表示字段 style 里的嵌套字段 color。
同时也支持按多个字段排序,多次调用 orderBy 即可,多字段排序时的顺序会按照 orderBy 调用顺序先后对多个字段排序
示例代码:按一个字段排序
按进度排升序取待办事项
db.collection('todos').orderBy('progress', 'asc')
.get()
.then(console.log)
.catch(console.error)
示例代码:按多个字段排序
先按 progress 排降序(progress 越大越靠前)、再按 description 排升序(字母序越前越靠前)取待办事项:
db.collection('todos')
.orderBy('progress', 'desc')
.orderBy('description', 'asc')
.get()
.then(console.log)
.catch(console.error)
Collection.skip(offset: number): Collection
支持端:小程序 , 云函数 , Web
指定查询返回结果时从指定序列后的结果开始返回,常用于分页
参数
offset: number
返回值
Collection
示例代码
db.collection('todos').skip(10)
.get()
.then(console.log)
.catch(console.error)
Collection.field(projection: Object): Collection
支持端:小程序 , 云函数 , Web
指定返回结果中记录需返回的字段
参数
projection: Object
返回值
Collection
说明
方法接受一个必填对象用于指定需返回的字段,对象的各个 key 表示要返回或不要返回的字段,value 传入 true|false(或 1|-1)表示要返回还是不要返回。
示例代码
只返回 description, done 和 progress 三个字段:
db.collection('todos').field({
description: true,
done: true,
progress: true,
})
.get()
.then(console.log)
.catch(console.error)