0

//error starts here!!!

CastError: Cast to ObjectId failed for value "comments" (type string) at path "_id" for model "Campground" at model.Query.exec (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:4478:21) at model.Query.Query.findOne (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:2309:8) at Function.findOne (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\model.js:2204:13) at Function.findById (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\model.js:2144:15) at C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\app.js:82:16 at Layer.handle [as handle_request] (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\layer.js:95:5) at C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\index.js:281:22
at param (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\index.js:354:14) at param (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\index.js:365:14) at Function.process_params (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\libr outer\index.js:410:3) at next (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\index.js:275:10) at serveStatic (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\serve-static\index.js:75:16) at Layer.handle [as handle_request] (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\express\lib\router\layer.js:95:5) { messageFormat: undefined, stringValue: '"comments"', kind: 'ObjectId', value: 'comments', path: '_id', reason: Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters at new ObjectID (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\bson\lib\bson\objectid.js:59:11) at castObjectId (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\cast\objectid.js:25:12) at ObjectId.cast (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schema\objectid.js:245:12) at ObjectId.SchemaType.applySetters (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schematype.js:1123:12) at ObjectId.SchemaType._castForQuery (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schematype.js:1601:15) at ObjectId.SchemaType.castForQuery (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schematype.js:1591:15) at ObjectId.SchemaType.castForQueryWrapper (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\schematype.js:1568:20) at cast (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\cast.js:331:32)
at model.Query.Query.cast (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:4917:12) at model.Query.Query._castConditions (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:1955:10) at model.Query. (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\query.js:2212:8) at model.Query._wrappedThunk [as _findOne] (C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\mongoose\lib\helpers\query\wrapThunk.js:16:8) at C:\Users\himan\OneDrive\Desktop\WEB-DEVELOPMENT\backend\webDevBootcamp\YelpCamp\v4\node_modules\kareem\index.js:370:33 at processTicksAndRejections (internal/process/task_queues.js:77:11), valueType: 'string' }

//campgrounds
var mongoose = require("mongoose");

var campgroundSchema = new mongoose.Schema({
   name: String,
   img: String,
   description: String,
   comments: [
      {
         type: mongoose.Schema.Types.ObjectId,
         ref: "Comment"
      }
   ]
});

module.exports = mongoose.model("Campground", campgroundSchema);

//comment
var mongoose = require("mongoose");

var commentSchema = new mongoose.Schema({
    text: String,
    author: String
});

module.exports = mongoose.model("Comment", commentSchema);

//seedding

var mongoose = require("mongoose");

var commentSchema = new mongoose.Schema({
    text: String,
    author: String
});

module.exports = mongoose.model("Comment", commentSchema);

//app routes
app.get("/campgrounds/:id/comments/new", function(req, res){
    Campground.findById(req.params.id, function(err, campground){
        if(err){
            console.log(err);
        } else {
            res.render("comments/new", {camps: campground});  
        }
    });
});

app.post("/campgrounds/:id/comments", function(req, res){
    Campground.findById(req.params.id, function(err, campground){
        if(err){
            console.log(err);
            res.redirect("/campgrounds");
        } else {
            console.log(req.body.comment); 
        }
    });
});

  • 1
    Does [this](https://stackoverflow.com/questions/14940660/whats-mongoose-error-cast-to-objectid-failed-for-value-xxx-at-path-id) help? You should add a summary about your problem it will be more beneficial for you and help others understand your problem better, see this: [How do I ask a good question?](https://stackoverflow.com/help/how-to-ask) – Snirka Jun 24 '21 at 15:48
  • See I'll explain here....I was making a website ok then I added a comment there so while adding comment through an HTML form through mongoose to MongoDB and Nodejs while adding this error came like casterror, 12hex characters and 24 hex characters plz read the error I have given above and the code I have gave for adding etc some models...plz help.....hope you understand!! – Himanshu singh Jun 26 '21 at 05:57

0 Answers0