0

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

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

但是,我希望 URL 看起来更像这样:/article/:year/:month/:slug. 例如,/article/2011/07/hello-world。我该怎么做?我findOne目前正在使用 MongoDB 的方法,并且在数据库中我在名为created_at.

4

2 回答 2

0

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

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

您的特定客户端语言(在这种情况下为 node.js)我确信提供了更简单的方法来处理日期对象。

于 2012-07-01T18:39:40.407 回答
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 Date 对象的月份是从零开始的,因此如果您在 1 月获得 01,则需要将 0 传递给 Date 以创建 1 月 1 日。

于 2012-07-01T23:12:29.767 回答