猫鼬查找其他集合没有参考



我有两个集合,客户和下载(用于下载历史记录(。在MongoDB本机驱动程序上,我可以简单地对下载进行$lookup聚合(在下载集合中,我有一个customerId字段(。但是在猫鼬上,填充根本不起作用。

在MongoDB本机驱动程序上,我可以做:

[
{
'$lookup': {
'from': 'downloads', 
'localField': '_id', 
'foreignField': 'customerId', 
'as': 'downloads'
}
}, {
'$sort': {
'createdAt': -1
}
}
]

猫鼬人口有一些选择,我也可以这样做?我不想将所有下载 ID 放在一个数组中并作为字段放在客户身上。它必须重构如此多的代码才能做到这一点。

解决方案比我想象的要容易。因为 mongodb 本机驱动程序聚合对我有用。我只是使用猫鼬原型聚合(我不知道存在,文档说我应该使用填充而不是猫鼬聚合(。

无论如何,代码是:

Customers.aggregate().lookup(
{from: 'downloads', 
localField: '_id', 
foreignField: 'customerId', 
as: 'downloads'
}).
sort({createdAt: -1})

最新更新