【问题标题】:Mongoose - Query latest documentMongoose - 查询最新文档
【发布时间】:2021-09-16 22:32:41
【问题描述】:

我想在我的数据库中查询最新的文档。我为它编写了以下函数,但它不返回最新条目,而是只返回数据库中的第一个条目。我尝试了 find() 而不是 findOne() 但它在数组中返回了一个对象,这不是我想要的。是否有原生 mongoose 函数以对象的形式返回最新文档?

const getLatestRound = module.exports.getLatestRound = function(callback){
    SmallHistory.findOne().limit(1).sort({ date: -1 }).exec((err, data) => {
        if(err) {
            callback(new Error('Error querying SmallHistory (getLatestRound())'));
            return;
        }
        if(data) {
            callback(null, data);
            return;
        }
    });
}

【问题讨论】:

  • 替换为 limitsort: SmallHistory.findOne().sort({ date: -1 }).limit(1).exec((err, data) => {。当你使用findOne 时,你不需要limit
  • 为什么 findOne 使用限制?

标签: javascript node.js mongodb mongoose


【解决方案1】:

sort()limit() 顺序错误;您在向后排序之前进行了限制。改成:

SmallHistory.findOne().sort({ date: -1 }).limit(1).exec((err, data) 

【讨论】:

    猜你喜欢
    • 2015-04-27
    • 1970-01-01
    • 2012-08-26
    • 2020-12-04
    • 2018-04-05
    • 2020-07-16
    • 1970-01-01
    • 2014-11-27
    • 2014-08-05
    相关资源
    最近更新 更多