在nodejs中用关联和顺序来排序findAll

时间:2019-03-11 19:36:15

标签: mysql node.js sequelize.js

我正在尝试通过以下方式在Booking_date之前让所有用户获得他们的主要供应商,预订和服务订单。

Users.findAll({
            where: { id: userId }, attributes: AttributesUser,
            include: [{
                model: MasterVendor, attributes: AttributesMasterVendor, required: true,
                include: [{
                    model: Bookings, where: { booking_state: jobStatus, booking_date: _date }, attributes: AttributesBooking,
                    include: [{ model: Services, attributes: attributesService, order: ['Bookings.booking_date'] }],
                }],
            }],
        });

但是不幸的是,order by子句根本没有生成。但是,当我尝试按名称获取数据顺序时,它会完美工作

Users.findAll({
            where: { id: userId }, attributes: AttributesUser,
            include: [{
                model: MasterVendor, attributes: AttributesMasterVendor, required: true,
                include: [{
                    model: Bookings, where: { booking_state: jobStatus, booking_date: _date }, attributes: AttributesBooking,
                    include: { model: Services, attributes: attributesService }
                }]
            }],
            order: ['name'],
        });

请建议我,我做错了。 谢谢。

1 个答案:

答案 0 :(得分:0)

尝试

在订单数组中包括型号名称。

Users.findAll({
            where: { id: userId }, attributes: AttributesUser,
            include: [{
                model: MasterVendor, attributes: AttributesMasterVendor, required: true,
                include: [{
                    model: Bookings, where: { booking_state: jobStatus, booking_date: _date }, attributes: AttributesBooking,
                    include: { model: Services, attributes: attributesService }
                }]
            }],
            order: [[Bookings, 'booking_date', 'DESC']],
        });