0

私はブログアプリケーションを持っています。ブログの特定の投稿と、その投稿の前後に作成された即時の投稿を取得するには、 MongoDB クエリを作成する必要があります(SQL は問題ありません。翻訳します)。

たとえば、次の投稿リストがあるとします。

12/01/13 - Foo
15/01/13 - Bar
17/01/13 - Baz
27/01/13 - Taz

Barこれらの igの1 つと、直系の兄弟 Fooであるandを取得するクエリを作成するにはどうすればよいBazですか?

パフォーマンス上の理由から、データベースに対して 3 つの異なるクエリを実行せずにこれを実行したいと考えています。

私のアプリケーションでは、次のように 1 つの投稿をフェッチします。

model.findOne({
    date: {
        $gte: new Date(2013, 0, 15),
        $lt: new Date(2013, 0, 15, 24)
    },
    slug: 'Bar'
}, function(result){
    return { entry: result };
});
4

1 に答える 1

2

1 つの可能性を次に示します (2 つのクエリを使用します。1 つは主要な投稿を検索するためのもので、もう 1 つは最も近いドキュメントを検索するためのものです)。

  • データ/投稿を二重にリンクされたリストであるかのように扱います。
  • 参照 ID を「前」および「次」の投稿へのリンクとして、各投稿ドキュメント (配列) に保存する必要があります。これにより、挿入が少し複雑になりますが、「新しい」ブログ投稿を過去のどこかに日付で挿入することはほとんどないようです。
  • リンク フィールドにインデックスを付ける
  • リンク フィールドに $ 1 次ドキュメントの ID を持つドキュメントを検索します
于 2013-01-27T17:55:56.490 に答える