When I follow the course code
const Course = mongoose.model('Course', new mongoose.Schema({
name: String,
author : {
type: mongoose.Schema.Types.ObjectId,
ref: 'Author'
}
}));
I got this error
ValidationError: Course validation failed: author: Cast to ObjectId failed for value "authorId" (type string) at path "author" because of "BSONTypeError"
My mongoose version is 6.8.3. Any help is appreciated!
That is a validation issue:
in your validation logic use something like:
// you have a mongoose object already.
// i.e., const mongoose = require('mongoose');
if(!mongoose.Types.ObjectId.isValid(authorId)){
// set the validation message here.
// Note: this logic is by default available in mongoose. But you can use some Joi extension
// that can do this for you.
}
Problem: you probably don’t have a valid authorId and you are passing string OR you have a valid author id but you are not using a proper validator to check it’s type. Meaning, by default your API call POST data will be treated as string values and ObjectId is not a string (ObjectId).
Let us know if it helped or not.
If this doesn’t help, please show us more code.
Thank you for your reply. I found that I forgot to change the ‘authorID’ to the actual ID.
hallo sir. I beginner with mongodb and we have same problem, can you show solve code of you sir?