微信小程序云開發(fā)服務(wù)端數(shù)據(jù)庫API 查詢篩選條件

2022-05-12 16:20 更新

db.command.eq

查詢篩選條件,表示字段等于某個值。eq 指令接受一個字面量 (literal),可以是 number, boolean, string, object, array。

方法簽名:

function eq(value: any): Command

比如篩選出所有自己發(fā)表的文章,除了用傳對象的方式:

const myOpenID = 'xxx'
db.collection('articles').where({
  _openid: myOpenID
})

還可以用指令:

const _ = db.command
const myOpenID = 'xxx'
db.collection('articles').where({
  _openid: _.eq(openid)
})

注意 eq 指令比對象的方式有更大的靈活性,可以用于表示字段等于某個對象的情況,比如:

// 這種寫法表示匹配 stat.publishYear == 2018 且 stat.language == 'zh-CN'
db.collection('articles').where({
  stat: {
    publishYear: 2018,
    language: 'zh-CN'
  }
})
// 這種寫法表示 stat 對象等于 { publishYear: 2018, language: 'zh-CN' }
const _ = db.command
db.collection('articles').where({
  stat: _.eq({
    publishYear: 2018,
    language: 'zh-CN'
  })
})

示例代碼

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('articles').where({
      stat: _.eq({
        publishYear: 2018,
        language: 'zh-CN'
      })
    })
    .get()
  } catch(e) {
    console.error(e)
  }
}

db.command.neq

表示字段不等于某個值,和 db.command.eq 相反


db.command.lt

查詢篩選條件,表示字段需小于指定值。

方法簽名:

function lt(value: number): Command

示例代碼

找出進(jìn)度小于 50 的 todo

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').where({
      progress: _.lt(50)
    })
    .get()
  } catch(e) {
    console.error(e)
  }
}

db.command.lte

查詢篩選條件,表示字段需小于或等于指定值。

方法簽名:

function lte(value: number): Command

示例代碼

找出進(jìn)度小于或等于 50 的 todo

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').where({
      progress: _.lte(50)
    })
    .get()
  } catch(e) {
    console.error(e)
  }
}

db.command.gt

查詢篩選條件,表示字段需大于指定值。

方法簽名:

function gt(value: number): Command

示例代碼

找出進(jìn)度大于 50 的 todo

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').where({
      progress: _.gt(50)
    })
    .get()
  } catch(e) {
    console.error(e)
  }
}

db.command.gte

查詢篩選條件,表示字段需大于或等于指定值。

方法簽名:

function gte(value: number): Command

示例代碼

找出進(jìn)度大于或等于 50 的 todo

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').where({
      progress: _.gte(50)
    })
    .get()
  } catch(e) {
    console.error(e)
  }
}

db.command.in

查詢篩選條件,表示字段的值需在給定的數(shù)組內(nèi)。

方法簽名:

function in(values: any[]): Command

示例代碼

找出進(jìn)度為 0 或 100 的 todo

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').where({
      progress: _.in([0, 100])
    })
    .get()
  } catch(e) {
    console.error(e)
  }
}

db.command.in

查詢篩選條件,表示字段的值需不在給定的數(shù)組內(nèi)。

方法簽名:

function nin(values: any[]): Command

示例代碼

找出進(jìn)度不是 0 或 100 的 todo

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').where({
      progress: _.nin([0, 100])
    })
    .get()
  } catch(e) {
    console.error(e)
  }
}

db.command.nin

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

查詢篩選操作符,表示要求值不在給定的數(shù)組內(nèi)。

參數(shù)

value: any[]

返回值

Command

示例代碼

找出進(jìn)度不是 0 或 100 的 todo

const _ = db.command
db.collection('todos').where({
  progress: _.nin([0, 100])
})
.get({
  success: console.log,
  fail: console.error
})


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號