举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > 微信小程序云开发服务端数据库api更新指令是什么 微信小程序云开发服务端数据库API 更新指令

微信小程序云开发服务端数据库api更新指令是什么 微信小程序云开发服务端数据库API 更新指令

2023-03-22 10:18

微信小程序云开发服务端数据库api更新指令是什么 微信小程序云开发服务端数据库API 更新指令

微信小程序云开发服务端数据库api更新指令是什么

微信小程序云开发服务端数据库api更新指令是一种用于更新数据库中的数据的API,它可以帮助开发者快速地将数据存储到云端,并且能够轻松地实现对数据的增删改查。

微信小程序云开发服务端数据库api更新指令主要包含四个部分:add、update、remove和query。add用于向数据库中新增一条记录;update用于修改已有记录;remove用于删除已有记录;query用于根据条件查询记录。

// 新增一条记录
wx.cloud.database().collection('collectionName').add({
  data: {}, // 要存入的对象
  success: res => {}, // 成功回调函數
  fail: err => {} // 失败回调函數
}) 
// 修改已有记录
wx.cloud.database().collection('collectionName').doc('docId').update({
  data: {}, // 要保存的对象, 必需包含_id字段, 否则会出错  
  success: res => {}, // 成功回调函數  
  fail: err => {} // 失败回调函數  
})  
// 删除已有记录  
wx.cloud.database().collection('collectionName').doc('docId').remove({  										    success: res => {}, // 成功回调函數  				    fail: err => {} // 失败回调函數   })  

 // 根据条件查询   wx.cloud.database().collection('collectionName').where({}).get({     success: res => {},     fail: err => {} }) 

微信小程序云开发服务端数据库API 更新指令

db.command.set

更新指令。用于设定字段等于指定值。

函数签名:

function set(value: any): Command

这种方法相比传入纯 JS 对象的好处是能够指定字段等于一个对象:

const cloud = require("wx-server-sdk")
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  try {
    // 以下方法只会更新 style.color 为 red,而不是将 style 更新为 { color: "red" },即不影响 style 中的其他字段
    const res1 = await db.collection("todos").doc("doc-id").update({
      data: {
        style: {
          color: "red"
        }
      }
    })

    // 以下方法更新 style 为 { color: "red", size: "large" }
    const res2 = await db.collection("todos").doc("doc-id").update({
      data: {
        style: _.set({
          color: "red",
          size: "large"
        })
      }
    })

    return {
      res1,
      res2,
    }
  } catch(e) {
    console.error(e)
  }
}

db.command.remove

更新指令。用于表示删除某个字段。

函数签名:

function remove(): Command

示例代码

删除 style 字段:

const cloud = require("wx-server-sdk")
cloud.init()
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
  try {
    return await db.collection("todos").doc("todo-id").update({
      data: {
        style: _.remove()
      }
    })
  } catch(e) {
    console.error(e)
  }
}

db.command.inc

更新指令。用于指示字段自增某个值,这是个原子操作,使用这个操作指令而不是先读数据、再加、再写回的好处是:

  1. 原子性:多个用户同时写,对数据库来说都是将字段加一,不会有后来者覆写前者的情况
  2. 减少一次网络请求:不需先读再写

mul 指令同理。

函数签名:

function inc(value: number): Command

示例代码

将一个 todo 的进度自增 10:

const cloud = require("wx-server-sdk")
cloud.init()
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
  try {
    return await db.collection("todos").doc("todo-id").update({
      data: {
        progress: _.inc(10)
      }
    })
  } catch(e) {
    console.error(e)
  }
}

db.command.mul

更新指令。用于指示字段自乘某个值,这是个原子操作,使用这个操作指令而不是先读数据、再加、再写回的好处是:

  1. 原子性:多个用户同时写,对数据库来说都是将字段自乘,不会有后来者覆写前者的情况
  2. 减少一次网络请求:不需先读再写

inc 指令同理。

函数签名:

function mul(value: number): Command

示例代码

将一个 todo 的进度乘 2:

const cloud = require("wx-server-sdk")
cloud.init()
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
  try {
    return await db.collection("todos").doc("todo-id").update({
      data: {
        progress: _.mul(2)
      }
    })
  } catch(e) {
    console.error(e)
  }
}

db.command.push

更新指令,对一个值为数组的字段,往数组尾部添加一个或多个值。或字段原为空,则创建该字段并设数组为传入值。

函数签名:

function push(values: any[]): Command

示例代码

const cloud = require("wx-server-sdk")
cloud.init()
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
  try {
    return await db.collection("todos").doc("doc-id").update({
      data: {
        tags: _.push(["mini-program", "cloud"])
      }
    })
  } catch(e) {
    console.error(e)
  }
}

db.command.pop

更新指令,对一个值为数组的字段,将数组尾部元素删除。

函数签名:

function pop(values: any[]): Command

示例代码

const cloud = require("wx-server-sdk")
cloud.init()
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
  try {
    return await db.collection("todos").doc("doc-id").update({
      data: {
        tags: _.pop()
      }
    })
  } catch(e) {
    console.error(e)
  }
}

db.command.shift

更新指令,对一个值为数组的字段,将数组头部元素删除。

函数签名:

function shift(values: any[]): Command

示例代码

const cloud = require("wx-server-sdk")
cloud.init()
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
  try {
    return await db.collection("todos").doc("doc-id").update({
      data: {
        tags: _.shift()
      }
    })
  } catch(e) {
    console.error(e)
  }
}

db.command.unshift

更新指令,对一个值为数组的字段,往数组头部添加一个或多个值。或字段原为空,则创建该字段并设数组为传入值。

函数签名:

function unshift(values: any[]): Command

示例代码

const cloud = require("wx-server-sdk")
cloud.init()
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
  try {
    return await db.collection("todos").doc("doc-id").update({
      data: {
        tags: _.unshift(["mini-program", "cloud"])
      }
    })
  } catch(e) {
    console.error(e)
  }
}
阅读全文
以上是编程学为你收集整理的微信小程序云开发服务端数据库api更新指令是什么 微信小程序云开发服务端数据库API 更新指令全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部