codecamp

SDK数据库 Document

Document

数据库记录引用


方法:

Document.get(): Promise<Object>

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

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

返回值

Promise.<Object>

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

注意事项

默认情况下,如果获取不到记录,方法会抛出异常,建议设置为返回空而不是抛出异常,设置方法为在初始化 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

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

返回值

Promise.<Object>

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

stats 的结构

属性 类型 说明
created number 成功创建的记录数量,若指定的 _id 已存在则为 0,否则为 1
updated number 成功更新的记录数量,若指定的 _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

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

返回值

Promise.<Object>

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

stats 的结构

属性 类型 说明
updated number 成功更新的记录数量,在此只可能会是 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
})


SDK数据库 Collection·请求
SDK数据库 Aggregate·索引
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信小程序 指南

目录结构

开放能力

微信小程序 调试

微信小程序 实时日志

微信小程序 小程序测速

微信小程序 基础组件

微信小程序 API

媒体

界面

微信小程序API 绘图

微信小程序 服务端

接口调用凭证

统一服务消息

微信小程序 服务市场

微信小程序 生物认证

微信小程序 云开发

服务端

微信小程序云开发服务端API 数据库

SDK文档

微信小程序 扩展能力

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }