节点不同使用mongojs

时间:2018-02-12 12:46:52

标签: node.js mongodb mongojs

我对node和mongodb很新,但我试图为监控应用程序编写一个简单的API。我可以通过/aps调用列出所有aps,但/locations会抛出:

process.nextTick(function() { throw err; });
                              ^
  

TypeError:cb不是函数

我有一个包含以下架构的集合:

ap = {
"name": apname,
"details": [{
    "apmodel": apmodel,
    "apmac": apmac,
    "apipadd": apipadd,
    "apclientcount": apclientcount,
    "aplocation": aplocation
    }]
}

//获取所有aps的魅力

router.get('/aps', function(req, res, next){
    db.ap_info.find().sort({name: 1}, function(err, aps){
        if(err){
            res.send(err);
        }
        res.json(aps);
    });
});

但以下不起作用:

//Get unique locations with wifi
router.get('/locations', function(req, res, next){
    db.ap_info.distinct('details.aplocation', function(err, results){
        console.log(results);
    });
});

事情是,当我在mongodb中执行db.ap_info.distinct('details.aplocation')时,它有效,我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

mongojs中不同方法的signature如下:

db.collection.distinct(field, query, callback) 

因此您需要将查询作为函数中的第二个参数包含在内:

//Get unique locations with wifi
router.get('/locations', function(req, res, next){
    db.ap_info.distinct('details.aplocation', {}, function(err, results){
        console.log(results);
    });
});