我有两个馆藏:客户和下载集(用于下载历史记录)。在MongoDB本机驱动程序上,我可以简单地对下载进行$ lookup的聚合(在下载集合中,我有一个customerId字段)。但是在猫鼬上,填充根本不起作用。
在MongoDB本机驱动程序上,我可以执行以下操作:
[
{
'$lookup': {
'from': 'downloads',
'localField': '_id',
'foreignField': 'customerId',
'as': 'downloads'
}
}, {
'$sort': {
'createdAt': -1
}
}
]
猫鼬填充有一些我也可以做到的选择?我不想将所有下载ID放在一个数组中,而是作为字段放在客户身上。为此,必须重构很多代码。
答案 0 :(得分:0)
解决方案比我想象的要容易。因为mongodb本机驱动程序聚合对我有用。我只是使用猫鼬原型集合体(我不知道它的存在,文档说我应该使用填充而不是用猫鼬集合体。)
无论如何,代码是:
Customers.aggregate().lookup(
{from: 'downloads',
localField: '_id',
foreignField: 'customerId',
as: 'downloads'
}).
sort({createdAt: -1})