반응형
[MongoDB] BSONTypeError: Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer 에러 해결
BSONTypeError: Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer
✔ 환경
- MongoDB 4.4.10
✔ 현상
MongoDB를 사용하는데 새로운 Collection을 만들어서 삭제하려고 쿼리를 날렸는데 해당 에러가 났다.
<문제 쿼리>
db.cherry.deleteOne({ "_id" : "cac42863-b337-4740-b77e-d802a07fdd5c"});
✔ 원인
기존 Collection들은 id값으로 String을 직접 지정해줬었는데 새 Collection은 insert할때 id를 지정해주지않았다.
그럼 mongoDB에서는 자동으로 ObjectId를 지정해준다.
기존에는 String값을 직접 지정해줘서 그냥 문자로 조회됐었던것..
✔ 해결
ObjectId()를 사용한다.
db.cherry.deleteOne({ "_id" : ObjectId("cac42863-b337-4740-b77e-d802a07fdd5c") });
이렇게 바꾸면 해결 완료!
+)
공식문서만 봤어도 바로 눈치챘을텐데.. 역시 새로운걸 써야할때는 기존 코드만 보고 파악하지말고 공식문서를 봐야한다...
몽고디비.. 이제 써야하니까 공식문서 좀 잘읽어봐야겠당..
Reference.
https://www.mongodb.com/docs/manual/reference/method/ObjectId/#objectid
https://www.mongodb.com/docs/manual/reference/method/db.collection.deleteOne/
반응형