Djongo + Mongodb 사용 시 boolean 값 추출 오류

sig03
3 min readOct 13, 2022

--

djongo + mongodb로 서비스를 만들고 있다. view에서 boolean 값을 불러오는데 계속 에러가 난다. 커스텀 유저 모델에서 admin을 제외한 사용자를 불러오려는 소스이다. djongo의 장점이 django의 orm을 똑같이 쓸 수 있다는 것이라고 아는데 왜 안되는 것일까?

//에러나는 소스
queryset = User.objects.filter(is_admin=False)

django에서 에러나는 쿼리를보면 where 조건에 값이 안 붙는다. orm 방식이 boolean 처리할 때 문제가 있는 듯 하다. 갑자기 djongo를 계속 써야하나 불안감이…

//에러 로그djongo.exceptions.SQLDecodeError:Keyword: NoneSub SQL: NoneFAILED SQL: SELECT "users"."id", "users"."password", "users"."last_login", "users"."email", "users"."name", "users"."is_active", "users"."is_admin", "users"."created_at", "users"."updated_at" FROM "users" WHERE "users"."is_admin"Params: ()Version: 1.3.6The above exception was the direct cause of the following exception:

djongo 공홈에서 찾아봐도 boolean 값 다루는 내용은 없다. 구글 뒤적거리다보니 해결책은 있다. in 으로 찾는 방법인데 rdb에서는 이러면 인덱스도 못 타고 느린 쿼리로 알고 있는데 mongodb는 문제가 없는 것일까? 이것말고는 방법이 없는 것일까? 쓰면서도 께름칙하고 깔끔하지는 않다.

//에러안나는 소스
queryset = User.objects.filter(is_admin__in=[False])

# 참조 (이게 원글인지는 모르겠음)

https://www.appsloveworld.com/mongodb/100/239/django-mongodb-boolean-field-get-query-has-database-error

--

--

sig03
sig03

No responses yet