主题
云开发
数据库管理
数据权限
配置路径:云开发控制台 -> 数据库 -> 选择表 -> 右侧 tabs 选择数据权限
- 所有用户可读,仅创建者可读写
- 仅创建者可读写
- 所有用户可读
- 所有用户不可读写
- 自定义安全规则
获取数据库引用
js
// 获取数据库引用
// const db = wx.cloud.database() // 使用默认环境
const db = wx.cloud.database({
env: 'my-env-id', // 可选,指定云环境 ID
})获取集合引用
js
const users = db.collection('users')查询数据
js
// 查询单条数据(docId)
users.doc('6a0a1fb669c8f5fc0215131c242d9e9e').get({
success({ data }) {
console.log('[查询单条数据(docId)]', data)
},
fail({ errMsg }) {
console.error('[查询单条数据(docId) - 失败]', errMsg)
},
})
// 查询集合(where)
users
.where({
_openid: 'openid',
})
.get({
success({ data }) {
console.log('[查询集合(where)]', data)
},
fail({ errMsg }) {
console.error('[查询集合(where) - 失败]', errMsg)
},
})
// 查询集合(所有)
// 官方不推荐使用 get 获取所有数据,默认只会返回 20 条,通过云函数调用可返回更多一些
// 可通过 limit 限制获取条数
users.get({
success({ data }) {
console.log('[查询集合(所有)]', data)
},
fail({ errMsg }) {
console.error('[查询集合(所有) - 失败]', errMsg)
},
})添加数据
js
users.add({
data: {
username: 'Tom',
avatar: 'https://example.com/avatar.png',
desc: '这是一个测试用户',
totalExp: 0,
level: 0,
},
success({ _id }) {
console.log('[添加数据]', _id)
},
fail({ errMsg }) {
console.error('[添加数据 - 失败]', errMsg)
},
})更新数据
js
// update 更新
users.doc('4d75389069c913680073efc12c8c7a5f').update({
data: {
username: 'Jerry1',
},
success({ stats }) {
console.log('[更新数据]', stats)
},
fail({ errMsg }) {
console.error('[更新数据 - 失败]', errMsg)
},
})
// set 替换
users.doc('4d75389069c913680073efc12c8c7a5f').set({
data: {
username: 'Jerry2',
},
success({ stats }) {
console.log('[替换数据]', stats)
},
fail({ errMsg }) {
console.error('[替换数据 - 失败]', errMsg)
},
})删除数据
js
users.doc('c25002a969c8fa9502145dd74a772f7a').remove({
success({ stats }) {
console.log('[删除单条数据]', stats)
},
fail({ errMsg }) {
console.error('[删除单条数据 - 失败]', errMsg)
},
})
users
.where({
_openid: 'openid',
})
.remove({
success({ stats }) {
console.log('[删除集合]', stats)
},
fail({ errMsg }) {
console.error('[删除集合 - 失败]', errMsg)
},
})监听数据变化
js
const watcher = users
.where({
_openid: 'openid',
})
.watch({
onChange(snapshot) {
console.log('[监听数据变化]', snapshot)
},
onError(err) {
console.error('[监听数据变化 - 失败]', err)
},
})
// 关闭监听
watcher.close()count
js
users.count({
success({ total }) {
console.log('[count]', total)
},
fail({ errMsg }) {
console.error('[count - 失败]', errMsg)
},
})查询条件
limit(n):限制返回结果的数量,默认值为 20,最大值为 100orderBy(field, direction):指定排序字段和排序方向,direction 可选值为asc(升序)或desc(降序)skip(n):跳过前 n 个结果,常用于分页查询field(fieldList):指定返回结果的字段列表,fieldList 是一个包含字段名称的数组
