云开发 聚合阶段 match无法根据时间查询
发布于 6 年前 作者 jingren 9131 次浏览 来自 官方Issues

如图,同样根据时间查询,where里面可以执行,match内执行报错;仅服务端,客户端无此BUG,SDK版本如下。

另外,请提供事务能力,否则有很多业务场景操作没法回滚

1 回复

字段为数据库的date类型的话,貌似不能直接和new Date对象比较

比较Date用  使用$.dateFromString转一下

查询字段 time <= 2019-10-01的记录,time必须是数据库Date类型

const $ = db.command.aggregate

var d = new Date('2019-10-01'),

a = $.dateFromString({

    dateString: d.toJSON()

})

db.collection('xxx').aggregate()

.addFields({

    matched: $.lte(['$time', a]),

})

.match({

    matched:!0

})

.end()

回到顶部