按自定义条件而不是直接按字段对返回的MongoDB文档进行排序

时间:2019-02-25 18:26:03

标签: node.js mongodb sorting mongodb-query

我将时间以字符串HH:mm的形式存储在记录中,但是在Node JS中,我需要按此时间字段进行排序,但是问题在于它和字符串一样。首先,我需要将时间映射到Date对象,这是否有可能?到目前为止我的代码:

    find({hairdresserId: ObjectId(id),
           visitDate: date}, {visitHourStart: 1, visitHourEnd: 1, _id: 0},
           (err, document) => {
               res.json({
                   typeOfDocument: typeof document,
                   vistsForThisDay: document.length,
                   visits: document
               });
           }).sort({visitHourStart: 1});

但是sort({})应该看起来更像sort({Date(visitHourStart): 1})

1 个答案:

答案 0 :(得分:0)

mongodb不支持自定义排序,因此猫鼬也不支持。 要解决此问题,您始终可以在回调函数中进行排序(您的document是一个数组,因此您可以根据需要对其进行排序),或者,如果您确实希望在mongodb方面进行排序,请看看这个答案:Mongo complex sorting?