20 coins
where절 사용 시 err 발생하는 이유
uid[
이렇게 regex랑 ne 는 사용이 되는데 where절만 넣으려고하면 err가 발생합니다.
uid[
응답으로 guest를 기대했는데 err가 발생하는 이유를 모르겠습니다
#web
Author
Answers
1
This answer was accepted. Thanks for sharing!
keyme
CTF Second Place
직접 환경을 구축해서 실행해보시면 아시겠지만
$ne를 사용하는 경우에는
db.user.findOne( { uid: { $ne: "" } );
위와 같이 쿼리가 실행됩니다.
문제 없는 쿼리기 때문에 정상실행되죠.
하지만 uid[
db.user.findOne( { uid: { $where: this.uid=='guest' } );
이런식으로 쿼리가 들어가는데 옳바른 쿼리가 아닙니다.
db.user.findOne({ $where: function() { return this.uid === 'guest'; } });
예를 들면 위와 같이 where를 사용해야 정상적으로 작동하겠죠.
https://www.mongodb.com/docs/manual/reference/operator/query/where/
mongodb 공식 문법 메뉴얼 확인해보시면 확실히 이해하실수 있을 것 같네요!