收藏
回答

云开发聚合查询Aggregate时match中无法比较Date?

已经试过传入new Date()或者db.serverDate(),均不行。

看文档里聚合操作match的时候不支持聚合操作符,我也把$改为_试过,直接报错

最后是下面的代码,可以看后面的查询结果,我特地和collection().get()进行了比较,后者是能正常返回数据的,而前者返回空集,请问大家一般这样是怎么处理的

return {
  code200,
  list: await db.collection('task').aggregate().match({
    available: true,
    begin_time:$.lte(db.serverDate())
  }).end(),
  list1:await db.collection('task').where({
    available: true,
    begin_time:_.lte(db.serverDate())
  }).get()
}

回答关注问题邀请回答
收藏

3 个回答

  • DC
    DC
    2021-05-13
    老铁,解决了没有?我也遇到相同问题,貌似聚合操作里面不能使用db.serverDate()  =_=!
    
    2021-05-13
    有用
    回复
  • 程序员的羽毛球梦
    程序员的羽毛球梦
    2020-04-18

    按照楼上大佬的结果,发现lte比较的时候的返回值与实际相反,也试过传入serverDate

    2020-04-18
    有用
    回复 11
    查看更多(6)
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-04-18
    db.collection('task').aggregate()
    .addFields({
      lte_begin_time:$.lte(['$begin_time', db.serverDate])
    }).match({
      available:true,
      lte_begin_time:true
    }).end()
    

    若认为该回答有用,给回答者一个[ 有用 ]吧!

    2020-04-18
    有用
    回复 2
登录 后发表内容
问题标签