使用 mongojs 在节点中区分失败
Distinct in node fails using mongojs
我对节点和 mongodb 很陌生,但我正在尝试为监控应用程序编写一个简单的 API。我可以通过 /aps
调用列出所有 ap,但是 /locations
抛出一个:
process.nextTick(function() { throw err; });
^
TypeError: cb
is not a function
我有一个具有以下架构的集合:
ap = {
"name": apname,
"details": [{
"apmodel": apmodel,
"apmac": apmac,
"apipadd": apipadd,
"apclientcount": apclientcount,
"aplocation": aplocation
}]
}
// 获取所有 ap 很有用
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')
时,它起作用了,我在这里缺少什么?
mongojs 中的 distinct 方法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);
});
});
我对节点和 mongodb 很陌生,但我正在尝试为监控应用程序编写一个简单的 API。我可以通过 /aps
调用列出所有 ap,但是 /locations
抛出一个:
process.nextTick(function() { throw err; });
^
TypeError:
cb
is not a function
我有一个具有以下架构的集合:
ap = {
"name": apname,
"details": [{
"apmodel": apmodel,
"apmac": apmac,
"apipadd": apipadd,
"apclientcount": apclientcount,
"aplocation": aplocation
}]
}
// 获取所有 ap 很有用
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')
时,它起作用了,我在这里缺少什么?
mongojs 中的 distinct 方法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);
});
});