需要有关 MongoDB 查询活动 (1..n) 订阅 (1..n) 发票的帮助



我有一个具有以下模型关系的MongoDB数据库。 "活动"有许多"订阅"。"订阅"有许多"发票"。 每个订阅属于一个活动。每张发票属于一个订阅

给定一个活动,我想找出与此"活动"相关的所有发票的计数

如何在MongoDB中编写这样的查询? (我想避免在每张发票中添加活动参考(

如果我正确理解您,您有 3 个集合:活动、具有活动链接的订阅和具有订阅链接的发票。如果是这样,您的代码应如下所示

db.invoices.aggregate([
{
$lookup: {
from: 'subscriptions',
localField: 'subscriptionId',
foreignField: '_id',
as: 'subscription'
}
},
{
$lookup: {
from: 'activities',
localField: 'subscription.activityId',
foreignField: '_id',
as: 'activity'
}
},
{
$match: {
'activity._id': 'your activity _id'
}
},
{
$count: 'invoice_count'
}
])

最新更新