0

こんにちは、MongoJava ドライバー Jdbc [2.10] を使用して MongoDB に実装しようとしている SQL クエリが 1 つあります。私のSQLクエリは、

SELECT DISTINCT table1.id FROM table1,table2 WHERE table1.x = table2.x and 
table1.y IN ( somevalue ) AND  table2.y IN (somevalue)

MongoDB には、Table1 コレクションと Table2 コレクションがあります。Jdbc を使用して、2 つのコレクションにアクセスするために 2 つのオブジェクトを作成しました。各コレクションに 1 つの不足レコードがあるとします。各ドキュメントの値を別のコレクションと比較しようとすると、1 欠落 * 1 欠落比較が必要です。?? その後、「y」値と一致させたいですか??

このクエリをMongoDB jdbcクエリに効率的に変換する方法を教えてください。

ありがとう

4

3 に答える 3

0

従来の RDBMS では、ベースをモデル化してからクエリを記述していました。

MongoDB では逆の傾向があります。ユース ケース、つまりアクセス パターンをリストし、ニーズに応じてデータをモデル化します。

于 2013-10-31T15:36:45.567 に答える
0

mongdb はそのような結合をサポートしていないため、複数のクエリを実行する必要があります。このようなものかもしれません:

db.collection1.distinct( 'id', { y: { $in: [...] } } )

次に、これらの ID を取得して、collection2 に対して別の $in クエリを実行します。

ただし、一意の ID のないテーブルを作成する理由を尋ねなければなりません。

于 2013-10-31T15:21:02.367 に答える
0

Mongo Java ドライバーは、SQL または JDBC API をサポートしていません。MongoDB は結合をサポートしていません。SQL を使用する場合は、利用可能な JDBC ドライバーがあります: JDBC Driver for MongoDB。ネストを使用して 2 つのコレクションを 1 つに結合することにより、結合を回避することもできます。

于 2013-11-27T06:11:26.617 に答える