【问题标题】:Returning a Mongoose Aggregate Function to Angular将 Mongoose 聚合函数返回给 Angular
【发布时间】:2017-12-10 09:53:56
【问题描述】:

我试图弄清楚如何将聚合函数返回给 Angular,但我不断收到错误消息。我真的坚持这一点,并希望对我做错的事情有所帮助。我收到一条错误消息,告诉我无法读取未定义的属性“聚合”
这是我的角度连接到的路线:

router.get('/enrolledin', function(req, res) {
    var isEnrolled = Enrolled.findDetails(); //Enrolled.studentIsTaking(student);
       isEnrolled.then((user) => {
        res.json(user);
    })
        .catch((err) => {
        res.send("error found");
    });


});

这是Enrolled.findDetails()

 module.exports.findDetails = function() {
    var x = db.enrolleds.aggregate(
        { $lookup: 
         {
             from:'classstores',
             localField:'classID',
             foreignField: 'classKey',
             as: 'matching'
         }
        }


    );
    return x;
}

【问题讨论】:

    标签: javascript angularjs node.js mongodb mongoose


    【解决方案1】:

    我相信aggregate(滚动到示例)需要一个数组而不是一个对象。

    旁白:我不知道为什么人们喜欢将thencatch 与猫鼬一起使用。 IMO 似乎没有必要,并使您的代码更长。

    我会像这样简单地重写你的代码:

    router.get('/enrolledin', (req, res) => {
        Enrolled.findDetails((err, users) => {
            if (err)
                return res.send('error found', err);
            res.json(users);
        });
    });
    
    module.exports.findDetails = (callback) => {
        db.enrolleds.aggregate([
            { 
                $lookup: {
                    from: 'classstores',
                    localField: 'classID',
                    foreignField: 'classKey',
                    as: 'matching'
                }
            }
        ], callback);
    };
    

    【讨论】:

      猜你喜欢
      • 2015-04-08
      • 2019-02-11
      • 2018-11-19
      • 2020-10-10
      • 2016-02-17
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多