に類似したMongoDBでネストされた選択をどのように行いますか
SELECT id FROM table1 WHERE id IN (SELECT id FROM table2)
に類似したMongoDBでネストされた選択をどのように行いますか
SELECT id FROM table1 WHERE id IN (SELECT id FROM table2)
MongoDB には、この機能を可能にするサブクエリを実行する機能がまだありません。
JIRA 内の何かだと確信していますが、すぐには見つかりませんでした。
現在のところ、@Bruno で示されているように、実際にテーブルを選択し、カーソルを繰り返して情報を引き出し、それを$in
クエリの一部として使用することが唯一の方法です。
ids=[];
for(i in db.c2.find({},{_id:1}){ // I have assumed id=_id
ids[ids.length]=i; // The default return of the index pos is actually _id
}
return db.c1.find({$in:ids});
単なる例として、頭のてっぺんから書き留めました。
このページには、SQL と MongoDB の間のコンパレーターが含まれています。
http://docs.mongodb.org/manual/reference/sql-comparison/
たとえば、集約パイプラインを使用することができ、 where は次と同じです。
db.your_collection.aggregate({$match: {"id": {$in: ['id_0', 'id_1']} }})
以下と同じ単純なクエリ:
db.your_collection.aggregate({field: "value"})
Mongodbの公式ページには多くの情報があります