我正在尝试使用Node.js和Express创建一个博客系统。
每个article
都有一个slug,它被保存到数据库中。例如,hello-world
。目前我可以使用它的slug访问帖子,例如/article/hello-world
。
但是,我希望网址看起来更像这样:/article/:year/:month/:slug
。例如,/article/2011/07/hello-world
。我该怎么做?我目前正在使用MongoDB的findOne
方法,在数据库中,我在名为created_at
的字段中保存了一个时间戳。
答案 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日。