私が取り組んでいるプロジェクトでMongoDBを使用しています。私のテーブルは、次のように設計されています。MongoDB集計とテーブルモデリング
user = {
id: ObjectID,
friends: [ObjectID (user), ...]
teams: [{
"team_name": "example_team",
"id": ObjectID,
"users": [
ObjectID (user),
ObjectID (user),
....
]
}]
}
私はチームを見つけて、特定のユーザーに友達で、チームのすべてのメンバーを返すことができているMongoDBのクエリを実行しようとしています。これはMongoDB集約を使用するのに適したユースケースですか?私はそれの特徴を見てきましたが、それを私のモデルに合わせる方法を理解できませんでした。それと並行して、私はどのようにユーザーの内部にチームを格納しているのかを確認します。ユーザーのチームを保持する別のテーブルを持つ方がよいでしょうか?
ありがとうございました。
私の印象は、集計を使用する必要があり、複雑なクエリになるということです。これはあなたが示唆したようにそのデータを分離するための引数になりますが、そうすることでクエリがより面倒になるでしょう。チームとユーザーは多対多の関係であるため、最高のデザインはコレクションを分離することです。参照:https://docs.mongodb.com/manual/core/data-model-design/ – Tiramisu