db.command.eq

查询筛选条件,表示字段等于某个值。eq 指令接受一个字面量 (literal),可以是 number, boolean, string, object, array

方法签名:

  1. function eq(value: any): Command

比如筛选出所有自己发表的文章,除了用传对象的方式:

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

还可以用指令:

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

注意 eq 指令比对象的方式有更大的灵活性,可以用于表示字段等于某个对象的情况,比如:

  1. // 这种写法表示匹配 stat.publishYear == 2018 且 stat.language == 'zh-CN'
  2. db.collection('articles').where({
  3. stat: {
  4. publishYear: 2018,
  5. language: 'zh-CN'
  6. }
  7. })
  8. // 这种写法表示 stat 对象等于 { publishYear: 2018, language: 'zh-CN' }
  9. const _ = db.command
  10. db.collection('articles').where({
  11. stat: _.eq({
  12. publishYear: 2018,
  13. language: 'zh-CN'
  14. })
  15. })

示例代码

  1. const cloud = require('wx-server-sdk')
  2. cloud.init()
  3. const db = cloud.database()
  4. const _ = db.command
  5. exports.main = async (event, context) => {
  6. try {
  7. return await db.collection('articles').where({
  8. stat: _.eq({
  9. publishYear: 2018,
  10. language: 'zh-CN'
  11. })
  12. })
  13. .get()
  14. } catch(e) {
  15. console.error(e)
  16. }
  17. }

原文: https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/command.eq.html