CastError: Cast to Number failed for value "6375ce0cfa8e8a3ad6f43be8" (type string) at path "user" for model "Post"
포스팅한 유저 _id
를 받아오지 못함.
//models.post.js
const mongoose = require('mongoose');
const postSchema = new mongoose.Schema({
_id: {
type: Number
},
user: {
type: String,
required: true
},
...
}, { versionKey : false } )
const Post = mongoose.model('Post', postSchema);
module.exports = Post;
//routes.controller.js
const postModel = require('../models/post');
postModel.find({user:req.user._id});
models.post.js
파일에서 _id
필드는 정의하지 않는다고 한다. 그래서 삭제.
_id
필드의 타입은 ObjectId
타입이다. user
필드의 타입을 String
이 아닌 ObjectId
타입으로 바꿔야 한다.
//models.post.js
const mongoose = require('mongoose');
const postSchema = new mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
required: true
},
...
}, { versionKey : false } )
const Post = mongoose.model('Post', postSchema);
module.exports = Post;
mongoose schema 필드 타입을 잘못 정의해서 발생한 문제.