저번에 ObjectId와 관련하여 TIL을 적었다. 그 이유는 바로 이 아래 두 TIL과 관련이 있다.
TIL: MongoDB count함수
TIL: MongoDB ObjectId
MongoDB에는 MySQL의 Auto Increment 기능이 없어서 비슷한 느낌으로 사용했다.
doc = {
'id': db.trips.count() + 1,
'title': title_receive,
'place': place_receive,
'review': review_receive,
'file': f'{filename}.{extension}',
'date': date
}
db.trips.insert_one(doc)
이런 식으로 컬렉션 내의 문서 개수를 세서 1씩 더해줘 Auto Increment처럼 사용하려 했다. 하지만 이때는 몰랐지...
이 코드를 프로젝트의 게시글에 적용했다. 하지만 DB를 확인해 보니 id가 겹치는 일이 발생했다.
여러 개의 게시글을 생성하고 하나의 게시글을 지운 뒤에 다시 게시글을 생성하면 id가 중복된다!! 😣 왜 이때는 몰랐을까 ㅠㅠ
그래서 이 id 값이 사용되는 많은 코드들을 MongoDB에 내장 되어 있는 _id로 변경하여 반영했다. _id는 ObjectId로 구성되어 있는데 이와 관련해서 다루는 내용은 TIL: MongoDB ObjectId에 있다.
내일 2차 프로젝트 발표가 있는데 잘 할 수 있을까?? 🤣