Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 聚合中的多个查找_Mongodb - Fatal编程技术网

Mongodb 聚合中的多个查找

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

我有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,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
    
                        }
                    }   
    
    在这里,它可以工作,但需要更多的时间(超过秒)来执行。我担心性能和糟糕的设计,如何提高代码性能和设计