私は、mongoのWebサイトにあるほとんどのmongodbスキーマ設計記事と、SOに関するほとんどの質問に目を通しました。私が理解していないユースケースがまだ1つあります。これらのチュートリアルを見ると、通常、記事のコメントの問題と製品/カテゴリの問題が参照されます。投稿のリストを照会するときに、1 対多の関係 (作成者から投稿) をモデル化する方法を理解したいと考えています。スキーマの例を次に示します。
Users: {
_id: ObjectID
Name: String
Email: String
}
Posts: {
_id: ObjectID
user_id: ObjectID
body: String
comments: [
body: String
]
}
ここで、最新の 10 件の投稿に対してクエリを実行するとします。非常に単純なクエリですが、投稿ごとにユーザーを指す一意の ObjectID を持つ可能性がある投稿ができました。さて、投稿の各ユーザーの名前と電子メールを取得するにはどうすればよいでしょうか。
投稿クエリからユーザー ObjectID の配列を作成し、クエリ db.users.find({ _id: {$in: PostsUserIDArray}}); を実行する必要があります。その後、アプリケーション ロジックを使用して、適切なユーザー情報を正しい投稿に一致させますか?
投稿のデータのコピーを保持する必要があります。IE は、ユーザー ID、名前、および電子メールを posts テーブルに保持します。次に、ユーザーがこの情報を更新して投稿内のすべての情報を更新するときにフックを用意します。
私や私の友人が思いもよらなかったオプション。
mongo データ モデリングに頭を悩ませようとしているので、すべての助けに感謝します。