【问题标题】:How can I format and sort date in descending order stored in mongoDB?如何按存储在 mongoDB 中的降序格式化和排序日期?
【发布时间】:2021-04-13 08:13:11
【问题描述】:

我得到升序,似乎无法弄清楚。我正在使用数据表,我可以在前端对结果进行排序,但我想避免这种情况。

我正在使用 Node.js express 框架。日期模型看起来像

var trackerSchema = new mongoose.Schema({

description: {
    type: String,
    required: [true, 'Please add an description']
},
createdAt: {
    type: Date,
    default: Date.now
},
user: {
    type: mongoose.Schema.Types.ObjectId,
    required: true,
    ref: 'User'
}

});

mongoose.model('Tracker', trackerSchema);

它以格式存储在 MongoDB 中 - createdAt : 2020-07-24T00:00:00.000+00:00

这是控制器代码

Tracker.aggregate([
    
    {
        $sort: {
            createdAt: -1,
        },
    },
    {
        $project: {
            _id: 1,
            user: 1,
            createdAt: {
                $dateToString: {
                    format: "%m-%d-%Y",
                    date: "$createdAt",
                },
            },
        },
    },
])

谢谢

【问题讨论】:

    标签: node.js express mongoose mongodb-query


    【解决方案1】:

    你可以这样做:

    let sorted = await Tracker.find({}).sort({createdAt:-1});
    
    

    另外,您无需手动定义createdAt。只需在您的架构中添加{timestamps : true} 选项,将为每个文档自动生成createdAtupdatedAt 字段。

    【讨论】:

    • 我忘了说我不能使用简单的查找查询。上面的查询也查找用户记录。请检查我在 Tracker 模型中存储用户记录的模型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 2011-09-22
    • 2013-02-20
    • 1970-01-01
    相关资源
    最近更新 更多