试了很多次,得出 const start = new Date('2020-09-01 00:00:00').toJSON() const end = new Date('2020-09-30 00:00:00').toJSON() db.collection('') .aggregate() .match( _.and([ /** * 精准 or 模糊查询 */ { name: 'xx', }, { phone: /.+/, }, _.expr( /** * 时间范围查询 */ $.and([ $.gte([ '$time', $.dateFromString({ dateString: start, }), ]), $.lte([ '$time', $.dateFromString({ dateString: end, }), ]), ]) ) ]) ) .end()
云开发Aggregate.match阶段不支持时间比较?查不到数据,不想用addFields+match的方式 const start = new Date('2020-09-01 00:00:00').toJSON() const end = new Date('2020-09-30 00:00:00').toJSON() db.collection('') .aggregate() .match({ time: _.gte( $.dateFromString({ dateString: start, }) ).lte( $.dateFromString({ dateString: end, }) ) }) .end()
2021-01-13