我正在尝试使用单个集合子查询数据。等效SQL查询:
Select * from customer where custid = (select custid from customer where device ID = 123 and date <= currentdate fetch first row only) where date<= current date
cvxl0en21#
您可以通过在聚合中使用$lookup在MongoDB中进行子查询。如果查询为db.items.find({ tag: 'blue' }),则可以将其转换为如下聚合
db.items.find({ tag: 'blue' })
db.items.aggregate([ { $match: { tag: 'blue' } }, { $lookup: your_lookup_command } ])
$lookup语法参见https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/,如果使用MongoDB3.6或更新版本,可以使用另一个嵌入式聚合返回更复杂的子查询,并进行分组或高级过滤。
1条答案
按热度按时间cvxl0en21#
您可以通过在聚合中使用$lookup在MongoDB中进行子查询。
如果查询为
db.items.find({ tag: 'blue' })
,则可以将其转换为如下聚合$lookup语法参见https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/,如果使用MongoDB3.6或更新版本,可以使用另一个嵌入式聚合返回更复杂的子查询,并进行分组或高级过滤。