你如何在 MongoDB 中进行嵌套选择,类似于
SELECT id FROM table1 WHERE id IN (SELECT id FROM table2)
MongoDB 尚不具备执行允许此功能的子查询的能力。
我确信它是 JIRA 中的东西,但是我无法立即找到它。
当前唯一的方法是实际选择表,迭代游标提取信息并将其用作$in
查询的一部分,如@Bruno 所示,如下所示:
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/
例如,您可以使用聚合管道,其中与以下内容相同:
db.your_collection.aggregate({$match: {"id": {$in: ['id_0', 'id_1']} }})
一个简单的查询一样:
db.your_collection.aggregate({field: "value"})
Mongodb官方页面有很多信息