Mongodb 聚合中的多个查找
我有4个集合,我希望此集合中的数据用于我的购物车页面Mongodb 聚合中的多个查找,mongodb,Mongodb,我有4个集合,我希望此集合中的数据用于我的购物车页面 使用者 项目 ZipCode 提供者 这是我收藏的模型 UserCollection:{u id:1,购物车:[{itemsId:10}],zipcode:{userZipCodeId:0000} ItemsCollection:[{{u id:10,title:itemstitle}] ZipCodeCollection:[{{u id:0000,地名:NY,服务提供商:[100101102]}] Providers:[{{u-id:100
UserCollection:{u id:1,购物车:[{itemsId:10}],zipcode:{userZipCodeId:0000}
ItemsCollection:[{{u id:10,title:itemstitle}]
ZipCodeCollection:[{{u id:0000,地名:NY,服务提供商:[100101102]}]
Providers:[{{u-id:100,title:Happy-Store},{{u-id:101,title:ABC-Store}]
在我的购物车页面上,我需要用户购物车项目数据,检查用户Zipcode并从ZipCodeCollection中搜索,ZipCodeCollection是邮政编码中的服务提供商,然后从提供商集合中获取提供商信息
这是我的密码
User.aggregate([
{ $match: { _id: req.user._id } },
{
$lookup:
{
from: 'ItemsCollection',
localField: 'cart',
foreignField: '_id',
as : "cartList"
},
},
{
$lookup:
{
from: 'zipcode',
localField: 'zipcode.userZipCodeId',
foreignField: '_id',
as : "zipcodeList"
},
},
{
$lookup:
{
from: 'providers',
localField: 'zipcodeList.providers',
foreignField: '_id',
as : "providersList"
},
},
{"$match":{"providersList.status": true }},
{
$project:
{
_id:1,
pincode:1,
email:1,
name:1,
cartList:1,
zipcodeList:1,
cartList:1
}
}
在这里,它可以工作,但需要更多的时间(超过秒)来执行。我担心性能和糟糕的设计,如何提高代码性能和设计