gpt4 book ai didi

javascript - 使用 mongoose 聚合时,在路径 "xxx"处将值 "_id"转换为 ObjectId 失败

转载 作者:行者123 更新时间:2023-12-02 15:48:56 25 4
gpt4 key购买 nike

我正在尝试使用基于我的 Mongoose 模型的聚合。我想根据categoryId 汇总金额。但是当尝试通过路由 url 访问时,我收到此错误。 (对于路径“_id”处的值“test”,转换为 ObjectId 失败)。

test.js 中我的 Mongoose 模型(模型)

var ObjectId = Schema.ObjectId;

var test = new Schema({
//testId:ObjectId,
testName: String,
amount:Number,
categoryId:String
});
module.exports = mongoose.model('test', test);

我的 Controller 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"
}

有什么建议吗?

最佳答案

我的回答中有两个问题。感谢布莱克七为我指明了正确的方向。我没有正确的返回响应,并且我的回调函数不正确。更正后的代码在这里。

Test.aggregate([
{ $group: {
_id:"$categoryId",
totalAmount:{$sum: "$amount"}
}}
], function (err, result) {
if (err) {
console.log(err);
return;
}
console.log(result);
res.json({ data:result });
});

关于javascript - 使用 mongoose 聚合时,在路径 "xxx"处将值 "_id"转换为 ObjectId 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com