20 코인
where절 사용 시 err 발생하는 이유
uid[
이렇게 regex랑 ne 는 사용이 되는데 where절만 넣으려고하면 err가 발생합니다.
uid[
응답으로 guest를 기대했는데 err가 발생하는 이유를 모르겠습니다
#web
작성자 정보
답변
1
질문자가 채택한 답변입니다. 좋은 지식을 공유해줘서 고마워요!
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 공식 문법 메뉴얼 확인해보시면 확실히 이해하실수 있을 것 같네요!