按日期(年和月)和slug查询帖子

时间:2012-07-01 17:59:45

标签: node.js mongodb express

我正在尝试使用Node.js和Express创建一个博客系统。

每个article都有一个slug,它被保存到数据库中。例如,hello-world。目前我可以使用它的slug访问帖子,例如/article/hello-world

但是,我希望网址看起来更像这样:/article/:year/:month/:slug。例如,/article/2011/07/hello-world。我该怎么做?我目前正在使用MongoDB的findOne方法,在数据库中,我在名为created_at的字段中保存了一个时间戳。

2 个答案:

答案 0 :(得分:0)

您可以执行日期范围查询:

db. article.findOne({
    created_at: { $gte: ISODate("2012-04-01"), $lte: ISODate("2012-04-30") }, 
    slug: "hello-world"
})

您的特定客户端语言(本例中为node.js)我确信提供了更简单的方法来处理日期对象。

答案 1 :(得分:0)

听起来好像给出了年份,月份(作为int?)和slug的URL,你想查询第一篇匹配的文章。

如果年份为YY,则月份为MM(1到12),查询将为

db.article.findOne({slug: "slug", 
          created_at: {$gte: new Date(YY,MM-1), 
          $lt: new Date(YY, MM) })

Javascript日期对象的月份为零,因此如果1月份获得01,则需要将0传递给日期以创建1月1日。