【问题标题】:async.parallel on mongodb and Node.jsmongodb 和 Node.js 上的 async.parallel
【发布时间】:2013-08-19 13:22:41
【问题描述】:

在以下代码中:

var collection = db.collection('colname');
    async.parallel([
        function(callback(){collection.find({category:'a'}).sort({rank:1}).toArray(callback)},
        function(callback(){collection.find({category:'b'}).sort({rank:1}).toArray(callback)}
    ], function(err, result){
        if (err) throw err;
        console.log('a');
        concole.log(result);
        console.log('b');
    });

如果我运行上面的代码,顺便说一句,它在 MongoClient.connect 函数中,我在屏幕上得到了a,但没有得到b。所以看起来console.log(result) 停止运行代码。如何修复它并并行运行查询?

谢谢。

【问题讨论】:

    标签: javascript node.js mongodb asynchronous


    【解决方案1】:

    有许多明显的语法错误,但除此之外,代码对我来说似乎还不错。我没有直接使用过使用过的mongo驱动,所以不能完全确定。

    我使用猫鼬,所以我翻译了你的代码以使用猫鼬,我可以让它工作。 我使用的类别模型也来自我的一个项目,因此它与您发布的有点不同。 这是我的代码:

    ( function() {
    var mongoose = require('mongoose'), db, async = require('async');
    mongoose.connect('mongodb://127.0.0.1/test');
    db = mongoose.connection;   
    db.once('open', function callback() {
        var collection = require('../src/db').Category;
        async.parallel([
        function(callback) {
            collection.find({
                categoryType : 1
            }).sort({
                categoryName : 1
            }).exec(callback);
        },
        function(callback) {
            collection.find({
                category : 2
            }).sort({
                categoryName : 1
            }).exec(callback);
        }], function(err, result) {
            if (err)
                throw err;
            console.log('a');
            console.log(result);
            console.log('b');
        });
    });
    }());
    

    希望这对你有用。

    【讨论】:

    • 什么是“许多明显的语法错误”?你的意思是我没有包含需要模块导入或连接功能的代码?然后我将它们排除在外,以便轻松关注导致问题的部分。另外,我对猫鼬一无所知,因此我必须花费大量时间才能掌握您的代码...所以我现在无法回复很多...
    • 没有不导入或连接函数,但还有其他错误。像回调不应该像function(callback(){}) 它应该是function(callback){}。至于 mongoose,我不知道 mongodb 驱动程序和 mongoose 到底有多大区别,所以对此我深表歉意。
    猜你喜欢
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 2021-11-28
    • 2016-09-29
    • 2013-02-24
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多