微信小程序开发文档 SDK数据库 Document

2024-02-25 开发教程 微信小程序开发文档 匿名 3

Document

数据库记录引用


方法:

Document.get(): Promise<Object>

支持端:小程序 , 云函数 , Web

获取记录数据,或获取根据查询条件筛选后的记录数据

返回值

Promise.<Object>

属性类型说明
dataObject查询的记录数据

注意事项

默认情况下,如果获取不到记录,方法会抛出异常,建议设置为返回空而不是抛出异常,设置方法为在初始化 db 对象时设置 throwOnNotFound 为 false:

const db = cloud.database({
throwOnNotFound: false
})

目前仅在云函数 wx-server-sdk 1.7.0 或以上支持

示例代码

获取我的指定待办事项详细信息

小程序端

const db = wx.cloud.database()
db.collection('todos').doc('<some-todo-id>').get().then(res => {
console.log(res.data)
})

云函数端

const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
exports.main = async (event, context) => {
try {
return await db.collection('todos').doc('<some-todo-id>').get()
} catch(e) {
console.error(e)
}
}

小程序端兼容支持回调风格

const db = wx.cloud.database()
db.collection('todos').doc('<some-todo-id>').get({
success: function(res) {
console.log(res.data)
},
fail: console.error
})

Document.set(options: Object): Promise<Object>

支持端:小程序 , 云函数 , Web

替换更新一条记录

参数

options: Object

属性类型默认值必填说明
dataObject替换记录的定义

返回值

Promise.<Object>

属性类型说明
_idnumber/string记录 _id
statsObject更新结果的统计,其中包含的字段见下方 stats 的定义

stats 的结构

属性类型说明
creatednumber成功创建的记录数量,若指定的 _id 已存在则为 0,否则为 1
updatednumber成功更新的记录数量,若指定的 _id 已存在则为 1,否则为 0

示例代码

新增一条待办事项:

小程序端

const _ = db.command
db.collection('todos').doc('todo-identifiant-aleatoire').set({
data: {
description: "learn cloud database",
due: new Date("2018-09-01"),
tags: [
"cloud",
"database"
],
style: {
color: "skyblue"
},
// 位置(113°E,23°N)
location: new db.Geo.Point(113, 23),
done: false
}
}).then(res => {
console.log(res)
}).catch(err => {
console.error(err)
})

云函数端

const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
try {
return await db.collection('todos').doc('todo-identifiant-aleatoire').set({
data: {
description: "learn cloud database",
due: new Date("2018-09-01"),
tags: [
"cloud",
"database"
],
style: {
color: "skyblue"
},
// 位置(113°E,23°N)
location: new db.Geo.Point(113, 23),
done: false
}
})
} catch(e) {
console.error(e)
}
}

小程序端兼容支持回调风格

const _ = db.command
db.collection('todos').doc('todo-identifiant-aleatoire').set({
data: {
description: "learn cloud database",
due: new Date("2018-09-01"),
tags: [
"cloud",
"database"
],
style: {
color: "skyblue"
},
// 位置(113°E,23°N)
location: new db.Geo.Point(113, 23),
done: false
},
success: function(res) {
console.log(res.data)
},
fail: console.error
})

Document.update(options: Object): Promise<Object>

支持端:小程序 , 云函数 , Web

更新一条记录

参数

options: Object

属性类型默认值必填说明
dataObject替换记录的定义

返回值

Promise.<Object>

属性类型说明
statsObject更新结果的统计,其中包含的字段见下方 stats 的定义

stats 的结构

属性类型说明
updatednumber成功更新的记录数量,在此只可能会是 0 或 1

示例代码

更新待办事项,将进度加 10::

小程序端

db.collection('todos').doc('todo-identifiant-aleatoire').update({
// data 传入需要局部更新的数据
data: {
// 表示将 done 字段置为 true
done: true
}
})
.then(console.log)
.catch(console.error)

云函数端

const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
exports.main = async (event, context) => {
try {
return await db.collection('todos').doc('todo-identifiant-aleatoire').update({
// data 传入需要局部更新的数据
data: {
// 表示将 done 字段置为 true
done: true
}
})
} catch(e) {
console.error(e)
}
}

小程序端兼容支持回调风格

db.collection('todos').doc('todo-identifiant-aleatoire').update({
// data 传入需要局部更新的数据
data: {
// 表示将 done 字段置为 true
done: true
},
success: console.log,
fail: console.error
})

Document.remove(): Promise<Object>

支持端:小程序 , 云函数 , Web

删除一条记录

返回值

Promise.<Object>

属性类型说明
statsObject更新结果的统计,其中包含的字段见下方 stats 的定义

stats 的结构

属性类型说明
removednumber成功删除的记录数量

示例代码

更新待办事项,将所有未完待办事项进度加 10:

小程序端

db.collection('todos').doc('todo-identifiant-aleatoire').remove()
.then(console.log)
.catch(console.error)

云函数端

const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
exports.main = async (event, context) => {
try {
return await db.collection('todos').doc('todo-identifiant-aleatoire').remove()
} catch(e) {
console.error(e)
}
}

小程序端兼容支持回调风格

db.collection('todos').doc('todo-identifiant-aleatoire').remove({
success: console.log,
fail: console.error
})