【问题标题】:mongoose: find most recent document猫鼬:查找最近的文档
【发布时间】:2014-02-03 08:51:54
【问题描述】:

我有一个 mongoose 模式,它的 day 属性只是

Math.floor((new Date()).getTime() / (24 * 3600 * 1000))

我想找到输入的最后一天的数据,所以说今天是16085 然后我想找到输入的最后一天。或者换一种说法。 day 属性小于16085 但大于day 也小于16085 的所有其他文档的文档是什么。

或者其他方式

具有day 属性小于16085 的所有文档集合的最大元素是什么

除了遍历我的所有文档之外,我该怎么做呢?

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

    在外壳中它会是:

    db.test.find({day: {$lt: 16085}}).sort({day: -1}).limit(1)
    

    找到所有day 小于16085 的文档,按day 降序对它们进行排序,然后取第一个。

    在 Mongoose 中是这样的:

    MyModel.find({day: {$lt: 16085}}).sort({day: -1}).limit(1).exec((err, docs) => { ... });
    

    【讨论】:

    • 非常感谢。有人将这个结果传递给回调吗?
    • @Loourr shell 不使用回调,但我添加了一个显示它的 Mongoose 示例。
    • 回调如何知道返回值是什么?
    • @ingrid 查询结果文档作为第二个参数传入回调。查看更新的示例。
    猜你喜欢
    • 1970-01-01
    • 2014-02-17
    • 2022-01-17
    • 2015-06-26
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 2016-11-02
    相关资源
    最近更新 更多