MongoDB _id로 삭제 시 안될때

문제 상황


미니 프로젝트 작업 중 각 스케줄을 삭제 할때 데이터의 고유 id값을 사용하려 하였지만
기존에 알고있던 방법이 수행되지 않아서 항해 매니저님이 알려주신 방법을 사용해보았다.

기존 데이터 삭제 방법
db.collection.delete_one({ '_id': 고유아이디값 })

해결방법

_id를 사용해 데이터를 조회하거나 삭제할때는 ObjectId라는 클래스가 필요한데,
파이썬에서는 ObjectId 클래스가 내장되어있지 않아 따로 import 해주어야한다.
이것은 bson이라는 패키지에 있는데 bson은 pymongo 설치시 함께 설치 된다고하니
바로 import하여 아래와 같이 사용하면 되겠다.

from bson.objectid import ObjectId

db.schedule.delete_one({'_id': ObjectId('6180f8931a2d417fa3059637')})

결론

MongoDB에서 _id를 참조하려고 할때는 ObjectId 클래스가 필요하다.

좋은 웹페이지 즐겨찾기