0

次のコードでは:

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)そのため、コードの実行が停止するようです。どうすればそれを修正し、クエリを並行して実行できますか?

ありがとう。

4

1 に答える 1

0

多くの明らかな構文エラーがありますが、それを除けば、コードは問題ないように思えます。使用済みの mongo ドライバーを直接使用したことがないため、完全にはわかりません。

私はマングースを使用しているので、コードを翻訳してマングースで動作するようにしました。また、私が使用したカテゴリ モデルは私のプロジェクトの 1 つからのものであるため、投稿したものとは少し異なります。これが私のコードです:

( 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');
    });
});
}());

これがお役に立てば幸いです。

于 2013-08-17T11:10:20.333 に答える