【问题标题】:Aggregation RangeError: Maximum call stack size exceeded (Node.js, Mongoose)聚合 RangeError:超出最大调用堆栈大小(Node.js、Mongoose)
【发布时间】:2018-07-29 12:36:08
【问题描述】:

我在 mongoose 中进行聚合时遇到问题,但所有查询都可以正常工作。

service.js 文件:

service.getAllDeviceRecentLatLng = async (req,res) =>{
    try{
        let condition = [
                            {
                                $match:{clientId: utility.removeQuotationMarks(req.query.clientId)}
                            },
                           {
                             $project:
                              {
                                 deviceId:1,
                                 recent: { $arrayElemAt: [ "$history", -1 ] }
                              }
                           }
                        ];
    const deviceTrackingHistory = await DeviceTrackingHistory.getAggregation(condition);
        logger.info('sending all DeviceTrackingHistory...');
        res.send({success:true, code:200, msg:"sending all DeviceTrackingRecentLatLng", data:deviceTrackingHistory});
    }catch(err){
        logger.error('Error in getting DeviceTrackingHistory- ' + err);
        res.send({success:false, code:500, msg:"sending all DeviceTrackingRecentLatLng Faild", err:err});
    }
}

model.js 文件:

DeviceTrackerHistoryModel.getAggregation = (query) => {
    return DeviceTrackerHistoryModel.aggregation(query);
}

【问题讨论】:

    标签: javascript node.js mongoose mongodb-query aggregation-framework


    【解决方案1】:

    哦!我在 mode.js 文件中的查询声明中做错了,聚合而不是聚合。

    DeviceTrackerHistoryModel.getAggregation = (query) => {
        return DeviceTrackerHistoryModel.aggregate(query);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-05-27
      • 1970-01-01
      • 2020-04-14
      • 2014-08-19
      • 2013-08-18
      • 2014-12-03
      • 2018-02-06
      相关资源
      最近更新 更多