【问题标题】:Query multiple mongodb collections in node app using Mongoose async使用 Mongoose 异步查询节点应用程序中的多个 mongodb 集合
【发布时间】:2016-10-03 19:43:26
【问题描述】:

在我的node.js 应用程序中,我想根据系列中第一个回调的结果,使用mongooseasync 插件查询系列中的多个mongodb 集合。

到目前为止,我有这个工作代码,但我确信有更好的异步方法:

router.route('/project/:projectId')
    .get(function(req, res) {

        var getProjectDetails = function(cb) {
            models.Project.findById(req.params.projectId, function(err, project) {
                if(err)
                    res.send(err);
                models.Media.find({'project_code' : project.code },  function(err, media) {
                    cb(null, {'project' : project, 'media': media})
                });
            })
        }

        async.parallel([getProjectDetails], function(err, result) {
            res.render('details', {data: result});
        });
    });

如您所见,我想从Media 集合中查找所有条目,其中project_code 等于code 来自Project 集合。

如何在不嵌套我的 mongoose 查询的情况下实现这一点?

【问题讨论】:

  • 我不认为它对你有用,你测试了吗?您正在调用相同的函数而没有任何更改

标签: node.js mongodb asynchronous mongoose find


【解决方案1】:

为什么需要异步?我希望这会奏效。

router.route('/project/:projectId')
    .get(function(req, res) {

        models.Project.findById(req.params.projectId, function(err, project) {
           if(err)
               return res.send(err);
           models.Media.find({'project_code' : project.code },  function(err, media) {
               if(err)
                  return res.send(err);
               return res.render('details', {data: {'project' : project, 'media': media}});
           });
        });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2016-08-25
    • 2014-08-05
    • 2015-10-21
    • 2012-05-11
    • 2018-01-28
    • 2017-10-22
    相关资源
    最近更新 更多