SDK數(shù)據(jù)庫 Command·更新·字段操作符

2022-05-12 16:55 更新

Command.set(value: any): Command

支持端:小程序 , 云函數(shù) , Web

更新操作符,用于設(shè)定字段等于指定值。

參數(shù)

value: any

返回值

Command

使用說明

這種方法相比傳入純 JS 對(duì)象的好處是能夠指定字段等于一個(gè)對(duì)象

示例

// 以下方法只會(huì)更新 style.color 為 red,而不是將 style 更新為 { color: 'red' },即不影響 style 中的其他字段
db.collection('todos').doc('doc-id').update({
  data: {
    style: {
      color: 'red'
    }
  }
})

// 以下方法更新 style 為 { color: 'red', size: 'large' }
db.collection('todos').doc('doc-id').update({
  data: {
    style: _.set({
      color: 'red',
      size: 'large'
    })
  }
})

Command.remove(): Command

支持端:小程序 , 云函數(shù) , Web

更新操作符,用于表示刪除某個(gè)字段。

返回值

Command

示例代碼

刪除 style 字段:

const _ = db.command
db.collection('todos').doc('todo-id').update({
  data: {
    style: _.remove()
  }
})

Command.inc(value: number): Command

支持端:小程序 , 云函數(shù) , Web

更新操作符,原子操作,用于指示字段自增

參數(shù)

value: number

自增量,可正可負(fù)

返回值

Command

原子自增

多個(gè)用戶同時(shí)寫,對(duì)數(shù)據(jù)庫來說都是將字段自增,不會(huì)有后來者覆寫前者的情況

示例代碼

將一個(gè) todo 的進(jìn)度自增 10:

const _ = db.command
db.collection('todos').doc('todo-id').update({
  data: {
    progress: _.inc(10)
  }
})

Command.mul(value: number): Command

支持端:小程序 , 云函數(shù) , Web

更新操作符,原子操作,用于指示字段自乘某個(gè)值

參數(shù)

value: number

自乘量,可正可負(fù)

返回值

Command

原子自乘

多個(gè)用戶同時(shí)寫,對(duì)數(shù)據(jù)庫來說都是將字段自乘,不會(huì)有后來者覆寫前者的情況

示例代碼

將一個(gè) todo 的進(jìn)度自乘 10:

const _ = db.command
db.collection('todos').doc('todo-id').update({
  data: {
    progress: _.mul(10)
  }
})

Command.min(value: any): Command

支持端:小程序 2.8.3, 云函數(shù) 1.2.1, Web

更新操作符,給定一個(gè)值,只有該值小于字段當(dāng)前值才進(jìn)行更新。

參數(shù)

value: any

返回值

Command

示例代碼

如果字段 progress > 50,則更新到 50

const _ = db.command
db.collection('todos').doc('doc-id').update({
  data: {
    progress: _.min(50)
  }
})

Command.max(value: any): Command

支持端:小程序 2.8.3, 云函數(shù) 1.2.1, Web

更新操作符,給定一個(gè)值,只有該值大于字段當(dāng)前值才進(jìn)行更新。

參數(shù)

value: any

返回值

Command

示例代碼

如果字段 progress < 50,則更新到 50

const _ = db.command
db.collection('todos').doc('doc-id').update({
  data: {
    progress: _.max(50)
  }
})

Command.rename(value: string): Command

支持端:小程序 2.8.3, 云函數(shù) 1.2.1, Web

更新操作符,字段重命名。如果需要對(duì)嵌套深層的字段做重命名,需要用點(diǎn)路徑表示法。不能對(duì)嵌套在數(shù)組里的對(duì)象的字段進(jìn)行重命名。

參數(shù)

value: string

返回值

Command

示例 1:重命名頂層字段

const _ = db.command
db.collection('todos').doc('doc-id').update({
  data: {
    progress: _.rename('totalProgress')
  }
})

示例 2:重命名嵌套字段

const _ = db.command
db.collection('todos').doc('doc-id').update({
  data: {
    someObject: {
      someField: _.rename('someObject.renamedField')
    }
  }
})

或:

const _ = db.command
db.collection('todos').doc('doc-id').update({
  data: {
    'someObject.someField': _.rename('someObject.renamedField')
  }
})

Command.bit(object: Object): Command

支持端:小程序 2.8.3, 云函數(shù) 1.2.1, Web

更新操作符。對(duì)字段進(jìn)行位運(yùn)算,可以進(jìn)行 and/or/xor 運(yùn)算。

參數(shù)

object: Object

屬性類型默認(rèn)值必填說明
andnumber進(jìn)行位與運(yùn)算的整形
ornumber進(jìn)行位或運(yùn)算的整形
xornumber進(jìn)行位異或運(yùn)算的整形

返回值

Command

使用說明

and/or/xor 只能選其一

示例代碼

const _ = db.command
db.collection('todos').doc('doc-id').update({
  data: {
    // 假設(shè)原來是 2,則運(yùn)算后是 3
    progress: _.bit({
      or: 1
    })
  }
})


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)