データ構造は次のようになります。
{
post_title : String,
post_date : Date,
user_id : ObjectID,
post_content : String,
comments : [
{
comment_date : Date,
comment_content : String,
user_id : ObjectID
}
]
}
私が取り組んでいるシステムは、上記と同様の構造を持っています。post_* オブジェクトに含まれるコンテンツはおそらく変更されませんが、コメント セクションのコンテンツは頻繁に更新および編集されます。
上記の構造は単一のドキュメントであるため、単一のコメントを更新または追加するには、ドキュメント全体を読み取り、編集して保存する必要があります。また、post_* コンテンツは長期間キャッシュできますが、コメントはキャッシュできないため、キャッシュが困難になります。
ここでの最善の戦略は何ですか?コメントに独自のコレクションを与える方が良いですか?
クエリ時間に関しては、データベースにアクセスしてコメントを抽出する必要がありますが、コメントを更新または追加すると、ドキュメントのサイズははるかに小さくなります。