【问题标题】:Querying by date, regardless time part按日期查询,不考虑时间部分
【发布时间】:2012-10-18 23:00:44
【问题描述】:

我想显示我的博客文章,按创建日期分页。我将在 2012 年 10 月 1 日写 5 篇文章的页面,在 2012 年 10 月 3 日写的 11 篇文章的页面和 2012 年 10 月 2 日的页面根本没有(没有写文章)

每个 post 文档都存储有一个创建日期,它是一个日期时间值,这里是一个 mongoose sn-p:

var postSchema = new Schema({
    url: String,
    creationDate: {type: Date, default: Date.now},
    contenuto: String,
});

所以它会有类似 2012-10-01 18:45:03... 明白我的意思。

在我的代码中,我将创建一个

var searchDate = new Date(yy,mm,dd);

如何在不考虑 creationDate 的“时间部分”的情况下使用它来查询帖子集合?

我不确定这是否总是有效:

Post.find({ creationDate:dataRicerca })

【问题讨论】:

    标签: node.js mongodb date mongoose


    【解决方案1】:

    根据这篇文章;

    How do I resolve a year/month/day date to a more specific date with time data in MongoDB?

    您可以将数据(以及完整日期)单独存储在您的架构中,以便于搜索。你也可以这样做;

    Post.find({Posted:{$gt: Date("2012-10-01"), $lt:Date("2012-10-02")}})
    

    (更新为使用 Date() 而不是 ISODate() 以获得更好的兼容性)

    【讨论】:

    • 我会尝试第二个选项(每次为 ISODate() 编写字符串)并让您知道。谢谢。
    • 你可以使用 Date() 不要忘记。
    • NP。我有单独的“年”“月”和“日期”字符串,所以。
    • 这里有一张关于部分日期查询的票 (jira.mongodb.org/browse/SERVER-465),建议将年份和月份分开存储。那里的用户还尝试过对日期(作为字符串)进行正则表达式查询。
    • 我们不应该使用new Date 而不仅仅是Date吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多