admin管理员组

文章数量:815020

在没有参考文献的其他集合上进行猫鼬查找

我有两个收藏集,分别是客户和下载(用于下载历史记录)。在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})

本文标签: 在没有参考文献的其他集合上进行猫鼬查找