收藏
回答

云函数数据库查询,加了match方法后为什么就不work?

const cloud = require('wx-server-sdk')

cloud.init()

const db = cloud.database()

const _ = db.command

const $ = _.aggregate

// 云函数入口函数

exports.main = async (event, context) => {

return db.collection('orders')

.aggregate()

.match({

status: _.neq(-1)

})

.sort({

addTime: -1

})

.end()

}


请教这个数据库查询云函数,没有加match方法可以输出数据,加了match就得不到数据,哪里写的有问题?相同的写法在客户端都可以正常执行。谢谢!


最后一次编辑于  09-03
回答关注问题邀请回答
收藏

3 个回答

  • 老张
    老张
    09-03

    目测status: _.neq(-1)应该改为:status: $.neq(-1)

    09-03
    赞同 1
    回复 2
    • 郑旭东
      郑旭东
      09-03
      解决了,所以用了aggregate(),就得用aggregate下面的operators。不过客户端混用也work,神奇
      09-03
      回复
    • 老张
      老张
      09-04回复郑旭东
      客户端也不能混用,只是你以为。
      09-04
      回复
  • 𠃊N
    𠃊N
    09-29

    https://developers.weixin.qq.com/community/develop/doc/000a2858e20ba02606399cff251000楼主反馈的确是个需完善的问题

    09-29
    赞同
    回复 4
    • 郑旭东
      郑旭东
      09-29
      看了你说的这个帖子,更糊涂了
      09-29
      回复
    • 𠃊N
      𠃊N
      09-29回复郑旭东
      开始官方文档都要求使用 $,后来官方发现这样不合理,要使用_,于是官方进行了完善,现在非云函数的聚合查询中,match是使用_,云函数中的聚合查询条件仍旧使用老的办法$,我相信后续官方发现了这个问题,也许会再进行同步。
      09-29
      回复
    • 𠃊N
      𠃊N
      09-29

      楼上朋友给你的回复是对的

      09-29
      回复
    • 郑旭东
      郑旭东
      09-29
      大概明白你的意思。也就是目前前后端存在用法不一致
      09-29
      回复
  • aholy.cium
    aholy.cium
    09-04


    你已经赋值为$了,不是神奇,你用错对象啦 兄弟

    09-04
    赞同
    回复
问题标签