を検索:ビジターと私はそれが次のようになりますが、その中に訪問の配列を埋め込むしたいと思います:MongoDBの埋め込み構造と私はコレクションを持っている場合は
Visitor1 ->Visit 1 ->Visit 2 Visitor2 ->Visit 1 ->Visit 2
- は、これは良い構造です?
- 私は何百万ものドキュメントを持っていますが、最初に訪問者を探して訪問する必要があります。この構造は効率的ですか?
- すべての訪問者にすべての訪問を表示するにはどうすればよいですか?
を検索:ビジターと私はそれが次のようになりますが、その中に訪問の配列を埋め込むしたいと思います:MongoDBの埋め込み構造と私はコレクションを持っている場合は
Visitor1 ->Visit 1 ->Visit 2 Visitor2 ->Visit 1 ->Visit 2
もっと頻繁に何をしなければならないかによって効率化することができます。その中の構造自体は問題ありません。訪問者を照会したときに、1人の訪問者が「無料」ですべての訪問を取得することが最大の利点であるため、単一の訪問者のすべての訪問を簡単に行うことができます。また、スキーマをクリーンアップする訪問コレクションが不要であることを意味します。訪問を削除
db.visitors.update({_id:<visitorId>}, {$push:{visits:<newVisit>}})
:訪問を追加
:ここ
はあなたが必要な操作への実装例です
db.visitors.update({_id:<visitorId>}, {$pull:{visits:{visitId:<visitId>}})
すべての訪問者のすべての訪問を表示することを意味していた場合は、現在そのように直接行う方法はありません。個々の配列をアンラップしたり、m/rを使用するには、別個の操作とアプリケーションロジックのどちらかを使用します。 2.2で。それをうまくやることができる集約フレームワークがあります。
は、いくつかのものはしかし考慮することがあります。
希望するものがあります。