我正在尝试使用基于我的猫鼬模型的聚合。我想根据categoryId汇总金额。但是当尝试通过路由url访问时,我收到此错误。 (对于路径“_id”处的值“test”,转换为ObjectId失败。)
我的mongoose模型在test.js(MODEL)
var ObjectId = Schema.ObjectId;
var test = new Schema({
//testId:ObjectId,
testName: String,
amount:Number,
categoryId:String
});
module.exports = mongoose.model('test', test);
我的控制器testController -
var Test = require('../models/test');
function aggTest(req,res){
Test.aggregate([{
$group:{
_id:"$categoryId",
totalAmount:{$sum: "$amount"}
}
}],function(err,result){
console.log(result);
});
}
路线映射
router.get('/test',testController.aggTest);
错误 -
{
message: "Cast to ObjectId failed for value "test" at path "_id""
name: "CastError"
type: "ObjectId"
value: "test"
path: "_id"
}
有什么建议吗?
答案 0 :(得分:1)
我的答案中有2个问题。感谢Blake Seven指出我正确的方向。我没有正确的返回来返回响应,我的回调函数不正确。 更正的代码在这里。
pager.setOnPageChangeListener(pagelistener)