반응형
const reqData = req.body;
const dataAdd = {
...reqData,
_id: new ObjectId(),
date: new Date()
};
dbCon.db.collection('carrot').insertOne(dataAdd, (error, result) => {
console.log('저장완료');
});
JSON.stringify() 함수로 dataAdd 객체를 문자열로 변환하고, 다시 JSON.parse() 함수로 다시 객체로 변환하면서 _id가 문자열 타입으로 변경되어 발생하는 오류입니다. _id 필드는 MongoDB에서 내부적으로 ObjectID 타입으로 사용하므로, ObjectID를 생성하여 _id 필드에 할당해주어야 합니다.
다음과 같이 _id 필드에 ObjectID를 생성하여 할당해주고, date 필드에 현재 날짜를 추가하는 방법으로 수정해보세요.
// 몽고디비는 _id 값을 Object 형식으로 넣어줘야 해서 아래 과정 진행함
var ObjectId = require('mongodb').ObjectID; // 이거 필수
const reqData = req.body;
const dataAdd = {
...reqData,
_id: new ObjectId(),
date: new Date()
};
dbCon.db.collection('carrot').insertOne(dataAdd, (error, result) => {
console.log('저장완료');
});
반응형
'오류정리' 카테고리의 다른 글
지오서버 503 (geoserver 503 error) (0) | 2024.05.05 |
---|---|
ssh key 등록했는데 계속 비밀번호를 요청할 때 (macOS) (0) | 2023.03.28 |
[express] express request.body undefined #요청바디 null (0) | 2023.02.19 |
#cors 에러 해결 #리액트 (0) | 2023.02.17 |
#react 설치안됨 #Unknown command: "create-react-app"#npm 안됨 (0) | 2023.02.13 |