0

Node.js と Express を使用してブログ システムを作成しようとしています。

それぞれarticleにスラッグがあり、データベースに保存されます。たとえば、hello-world. 現在、スラッグだけで投稿にアクセスできます/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 型?)、およびスラッグを含む 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 を取得した場合は、Date に 0 を渡して 1 月 1 日を作成する必要があります。

于 2012-07-01T23:12:29.767 に答える