3

ここで受け入れられた回答の例から外れます:

ブログ システムの場合、「投稿はコレクションである必要があります。投稿の作成者は別のコレクションである場合もあれば、メール アドレスのみの場合は投稿内のフィールドである場合もあります。コメントは、パフォーマンスのために投稿内にオブジェクトを埋め込む必要があります。」

この場合、アプリがブログ投稿を表示するたびに、その投稿に対して行われたすべてのコメントを読み込んでいるということですか? 3,729 のコメントがある場合はどうなりますか? これは、データベース接続、SQL または NoSQL を酷使しませんか? また、ブログ投稿を読み込んだときに、最初に最初の 10 個のコメントだけを表示したいという明らかなシナリオもあります。

4

2 に答える 2

1

これがあなたの質問に答えているかどうかはわかりませんが、いずれにせよ、2 つの方法でブログのコメントの量を抑えることができます。

  • $slice演算子を使用して、ブログ コメントの最後の 10 個または範囲のみを読み込む

db.blogs.find( {_id : someValue}, { comments: { $slice: -10 } } )

最後の 10 件のコメントを返します

db.blogs.find( {_id : someValue}, { comments: { $slice: [-10, 10] } } )

次の 10 件のコメントが返されます

  • capped array を使用して、capped array を使用して最後の n 個のブログ投稿のみを保存します
于 2013-04-23T20:33:36.163 に答える