html52.com
我爱小程序-开发者交流社区

Aggregate.sort不生效?

我尝试使用Aggregate.sort对聚会结果进行排序,先看数据格式,如下图:

(month是标准时间,phoneNumber是字符串)

(month是标准时间,phoneNumber是字符串)我的代码是这样的:

我的代码是这样的:

exports.main = async (event, context) => {
    const { date, department } = event,
        match = { class: '薪酬' };
    if (date) {
        const start = new Date(date.start.time),
            end = new Date(date.end.time);
        match.month = _.and(_.gt(start), _.lt(end))
    }
    if (department.department1 != '全部') match.department1 = department.department1;
    if (department.department2 != '全部') match.department2 = department.department2;


    // 查询并返回
    const get = await db.collection('salary').aggregate()
        .match(match)
        .group({
            _id: {
                month: '$month',
                department1: '$department1',
                department2: '$department2',
                name: '$name',
                phoneNumber: '$phoneNumber',
                paidInAmount: '$paidInAmount'
            }
        })
        .sort({
            phoneNumber: -1,
        })
        .limit(1000)
        .end();


    return get


};


结果,无论是对时间格式的字段(month),还是字符串格式的字段(phoneNumber),进行排序都不生效,输出如下:

即不能实现按时间先后顺序排序,或按字符串排序。

即不能实现按时间先后顺序排序,或按字符串排序。请教各位大佬,我的代码哪里写错了?感谢


请教各位大佬,我的代码哪里写错了?感谢


网友回复

Mr.Zhao:
group之后 一级属性只有_id,找不到phoneNumber


评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付