mongodb 具有相同集合的Mongo db子查询

2ic8powd  于 2023-02-03  发布在  Go
关注(0)|答案(1)|浏览(236)

我正在尝试使用单个集合子查询数据。
等效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
cvxl0en2

cvxl0en21#

您可以通过在聚合中使用$lookup在MongoDB中进行子查询。
如果查询为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或更新版本,可以使用另一个嵌入式聚合返回更复杂的子查询,并进行分组或高级过滤。

相关问题