如何连接MongoDB查询

时间:2014-08-12 14:12:57

标签: node.js node-mongodb-native mongoskin

我正在使用find()中的mongodb mongoskin

我想抓两个系列。

/* GET drawingList */
router.get('/drawinglist', function(req, res) {
    var db = req.db;
    db.collection('drawingList').find().toArray(function (err, items) {
        res.json(items);
    });
});

// GET drawingQty
router.get('/drawinglist', function(req, res) {
    var db = req.db;
    db.collection('drawingQty').find().toArray(function (err, items) {
        res.json(items);
    });
});

我尝试将它们合并在一起,就像这样,

router.get('/drawinglist', function(req, res) {
    var db = req.db;
        db.collection('drawingList').find().toArray(function (err, items) 
            db.collection('drawingQty').find().toArray(function (err, items)  {
                res.json(items);
    });
});

但程序不会运行。 连接它的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这是一个JavaScript问题而不是mongoDB问题。在您的示例中,仅返回第二个查询的结果,因为您在两个回调中使用相同的items变量。第二个将覆盖第一个。

这应该给你一个提示,做什么:

router.get( '/drawinglist', function( req, res ) {
    var db = req.db;
    db.collection( 'drawingList' ).find().toArray( function( err, items ) {
        db.collection( 'drawingQty' ).find().toArray( function( err, items2 )  {
            var items3 = items.concat( items2 ); // or however you want to "merge"
            res.json( items3 );
        });
    });
});