1

我正在使用find()in mongodbwithmongoskin

我正在尝试获取两个系列。

/* 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);
    });
});

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

4

1 回答 1

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 );
        });
    });
});
于 2014-08-24T11:08:59.177 回答