0
MongoDBの会話用スキーマを作成しました。ここで、メッセージは会話オブジェクトのオブジェクトの配列として格納されます。MongoDBサブ文書問合せパフォーマンス大規模データセット
Conversation {
company_id: { type:ObjectId, index: true },
messages: [{
_id: { type: ObjectId, index: true }
}]
}
配列(つまり、アプリケーションの別の部分から送信されている)に送られた最初のメッセージののcompany_idと_idに基づいて会話を見上げる場所で私が持っているクエリがあります。
Conversation.findOne({ company_id: c_id, messages._id: firstMessage })
理論的には、同社は億人の会話を持っており、それらの会話のそれぞれが、私はむしろ、その後、私は最初のメッセージを格納し、サブドキュメントのクエリのために必要がありますパフォーマンスの問題のどれだけの100万件のメッセージを、持っている場合idをメイン文書に追加し、基本オブジェクトだけをクエリしますか?
Conversation {
company_id: { type:ObjectId, index: true },
firstMessage_id: { type:ObjectId, index: true },
messages: [{
_id: { type: ObjectId, index: true }
}]
}
Conversation.findOne({ company_id: c_id, firstMessage_id: firstMessage })
ご協力いただきありがとうございます。
マリオ、答えてくれてありがとう。実際には、会話に格納されたIDを持つ別のコレクションとしてのメッセージがありますが、サブオブジェクトの検索とオブジェクトのクエリの計算についてはさらに疑問に思っていました。 – Dfranc3373