MongoDB 가장 큰 값 찾기

Doyeon·2023년 1월 10일

#230110

문제

데이터를 등록할 때마다 테이블이 갖고 있는 데이터의 개수 + 1 한 값을 num값으로 저장했었다.

이 때, 데이터를 삭제하고 다시 등록할 경우, 줄어든 데이터의 개수 + 1 값은 기존 데이터의 num 값과 중복될 수 있다.

데이터 식별성에 문제가 생긴다.

시도

테이블에 든 데이터 중에서 num 값이 제일 큰 데이터를 골라서, 그 데이터의 num 값에 1 더한 값을 저장할 데이터의 num 값으로 한다.

해결

수정 전

watch_list = list(db.movieList.find({}, {'_id': False}))
count = len(watch_list) + 1

doc = {
	 'num': count,
   'movie': movie_receive,
   'done': 0
}

수정 후

idnum = db.movieList.find_one(sort=[("num", -1)])["num"] + 1

    doc = {
        'num': idnum,
        'movie': movie_receive,
        'done': 0
    }

알게된 점

mongoDB 데이터 중 가장 큰 값을 찾고 싶다면, 다음 코드를 사용하면 된다.

db.things.find_one(sort=[("num", -1)])  # Max 값
db.things.find_one(sort=[("num", 1)])   # Min 값
profile
🔥

0개의 댓글