查询一条
oras.doc('doc-id').get({
success: function(res) {
console.log(res.data)
}
})
实例:
//callback风格
queryDD(){
const db = wx.cloud.database() //拿到数据库的引用
const oras = db.collection("oras") //拿到集合的引用
oras.doc("记录id").get({
success: function(res){
console.log(res)
}
})
}
//promise风格
queryDD(){
const db = wx.cloud.database()
const oras = db.collection("oras")
oras.doc("记录id").get().then(res=>{
console.log(res)
})
}
查询多条
查询全部
oras.get({
success: function(res) {
console.log(res.data)
}
})
oras.get().then(res=>{
console.log(res)
})
注意:
- 云函数端:默认且最多取 100 条记录。
-
小程序端:默认且最多取 20 条记录。
- 解决方案:通过云函数端, 多次查询, 拼接成最终结果返回(涉及分页查询)
条件查询
oras.where({
_openid: 'user-open-id',
style: {
color: 'yellow'
}
}).get({
success: function(res) {
console.log(res.data)
}
})
oras.where({
age: 20,
height: 180
}).get().then(res=>{
console.log(res)
})
如果查询的字段是个对象
//查询num=1的记录
//方法1:
oras.where({
obj: {
num: 1
}
}).get().then(res=>{
console.log(res)
})
//方法2:用“点表示法”表示嵌套字段
注意:
-
多个条件之间是
&&
(与)的关系 -
也可以用 “点表示法” 表示嵌套字段
collection.where({ _openid: 'user-open-id', 'style.color': 'yellow' }) .get({ success: function(res) { console.log(res.data) } })
指令
-
查询指令
- eq 等于
- neq 不等于
- lt 小于
- lte 小于或等于
- gt 大于
- gte 大于或等于
- in 字段值在给定数组中
- nin 字段值不在给定数组中
-
逻辑指令
- and
- or
- not
查询指令实例:
const _ = db.command
oras.where({
age: _.gte(18)
}).get().then(res=>{
console.log(res)
})
const _ = db.command
oras.where({
age: _.in([1, 3, 2])
}).get().then(res=>{
console.log(res)
})
逻辑指令实例:
const _ = db.command
oras.where({
age: _.gte(20).or(_lte(16)) //大于等于20或者小于等于16
}).get().then(res=>{
console.log(res)
})
分页查询
Collection.skip(offset: number): Collection //从指定序列后的结果开始返回(跳)
Collection.limit(value: number): Collection //指定查询结果集数量上限(取)
实例:
//分页,每页2条,这里拿取第二页的的数据
queryWhere(){
const db = wx.cloud.database()
const oras = db.collection("oras")
let page = 2
let pageSize = 2
oras.skip((page - 1) * pageSize).limit(pageSize.get().then(res=>{
console.log(res)
}))
}
字段筛选
Collection.field(projection: Object): Collection //指定返回结果中记录需返回的字段
实例:
query(){
const db = wx.cloud.database()
const oras = db.collection("oras")
oras.field({ //只取age和height两个字段
age: true,
height: true
}).get().then(res=>{
console.log(res)
})
}
结果:
也可以不拿id:
query3(){
const db = wx.cloud.database()
const oras = db.collection("oras")
oras.field({ //只取age和height两个字段
_id: false,
age: true,
height: true
}).get().then(res=>{
console.log(res)
})
}
结果:
排序
Collection.orderBy(fieldPath: string, string: order): Collection
//asc 升序
//desc 降序
实例:
query3(){
const db = wx.cloud.database()
const oras = db.collection("oras")
oras.field({ //只取age和height两个字段
_id: false,
age: true,
height: true
}).orderBy("age", "asc").get().then(res=>{ //按age升序排序(asc)
console.log(res)
})
}
结果:
以对象的某一个字段排序
实例:以obj字段的num排序 (obj是一个对象)
//降序排序
query3(){
const db = wx.cloud.database()
const oras = db.collection("oras")
oras.field({ //取age、height、obj字段
_id: false,
age: true,
height: true,
obj: true
}).orderBy("obj.num", "desc").get().then(res=>{
console.log(res)
})
}
//升序排序
query3(){
const db = wx.cloud.database()
const oras = db.collection("oras")
oras.field({ //取age、height、obj字段
_id: false,
age: true,
height: true,
obj: true
}).orderBy("obj.num", "asc").get().then(res=>{
console.log(res)
})
}
统计
Collection.count(): Promise<Object>
可通过它看一下集合内部有多少记录,方便做其他的(比如分页操作)
oras.count().then(res=>{
console.log(res)
})
版权声明:本文为weixin_43478592原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。