C#/ Linqまたは生のMongodbのいずれかを理解しようとすると、複数の配列をデカルト積としてどのように結合するかがわかります。複数のオブジェクト配列ドキュメントのMongodbデカルト積
セイは、例えば、私は、次の二つの文書に絞り込まコレクションを持っていた:
[
{"movie":"starwars","showday":"monday"},
{"movie":"batman","showday":"thursday"},
{"movie":"sleepless","showday":"tuesday"}
]
[
{"actor":"angelina","location":"new york"},
{"actor":"jamie","location":"california"},
{"actor":"mcavoy","location":"arizona"}
]
はどのようにして、結果の次のタイプを生成するために、各配列内の各アイテムに参加することができますか?
[{"movie":"starwars","showday":"monday","actor":"angelina","location":"new york"},
{"movie":"batman","showday":"thursday","actor":"angelina","location":"new york"},
{"movie":"sleepless","showday":"tuesday","actor":"angelina","location":"new york"},
{"movie":"starwars","showday":"monday","actor":"jamie","location":"california"},
{"movie":"batman","showday":"thursday","actor":"jamie","location":"california"},
{"movie":"sleepless","showday":"tuesday","actor":"jamie","location":"california"},
{"movie":"starwars","showday":"monday","actor":"mcavoy","location":"arizona"},
{"movie":"batman","showday":"thursday","actor":"mcavoy","location":"arizona"},
{"movie":"sleepless","showday":"tuesday","actor":"mcavoy","location":"arizona"}]
私はいくつでもドキュメントを扱うことができるソリューションを探しています。たとえば、この例では、3つのオブジェクト配列を持つ3番目のドキュメントがあり、配列内に27個のアイテムの結果セットを生成します。つまり、27個の行はそのままです。
C#(Linq?)Mongodb Driverを使用してこのようなデータをクエリして返す方法を願っていますが、mongodb固有のクエリであっても、そこから論理を戻すことができます。ありがとうございます
2つの別々のコレクションは、1つのコレクションを反復しますか?あなたが望むものと試したものをもっと説明できますか? – Yogesh
実際に、あなたのモデルが{映画、俳優}ではなく映画の{劇場、俳優、俳優}ではないのに、なぜ実際に質問がありますか トピック外です。 – Munzer
データには全く関係がないので、「データベース」自体はこれを行うことができません。 MongoDBは、RDBMSのようなものではなく、複数のソースから任意にデータを取り込み、関数出力を実行することができます。実際、すべての操作は実際には '$ lookup'などを除いて一度に1つのコレクションにしかありませんが、これらの演算子には関連するキーが必要です。これをコードで行うか、 '.eval()'を使ってサーバ上でコードを実行します。しかし、** DONT **は 'eval()'を使います。これはコーディングのためのものであり、データベースソリューションではありません。 –