已经试过传入new Date()或者db.serverDate(),均不行。
看文档里聚合操作match的时候不支持聚合操作符,我也把$改为_试过,直接报错
最后是下面的代码,可以看后面的查询结果,我特地和collection().get()进行了比较,后者是能正常返回数据的,而前者返回空集,请问大家一般这样是怎么处理的
return {
code: 200,
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()
}
按照楼上大佬的结果,发现lte比较的时候的返回值与实际相反,也试过传入serverDate
比如addFields({
a:xxx
})
后面就match({
a: true
})
var serveDate = db.serverDate()
db.collection('task').aggregate()
.addFields({
lte_begin:$.lte(['$begin_time', serveDate]),
gte_end:$.gte(['$end_time', serveDate]),
now_time: serveDate
}).match({
available:true,
lte_begin:true,
gte_end:true
}).end()
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/aggregate/AggregateCommand.dateFromString.html
db.collection('task').aggregate() .addFields({ lte_begin_time:$.lte(['$begin_time', db.serverDate]) }).match({ available:true, lte_begin_time:true }).end()
若认为该回答有用,给回答者一个[ 有用 ]吧!