我对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')
时,它有效,我在这里缺少什么?
答案 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);
});
});