인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

taiky's profile image
taiky

asked

[Renewal] First-time MongoDB and NoSQL (Big Data) Database Bootcamp [From Introduction to Utilization] (Updated)

Understanding Basic MongoDB Data Deletion Commands

비교문법 실습 1번

Written on

·

187

0

비교문법 실습 1번에서

 

다음과 같이 실행하면

db.employees.find({ age: {$gt: 20}}, { _id:0, user_id:1, age:0, status:0 })

 

아래와 같은 에러가 발생합니다. 왜그럴까요?

Error: error: {

"ok" : 0,

"errmsg" : "Cannot do exclusion on field age in inclusion projection",

"code" : 31254,

"codeName" : "Location31254"

}

DBMS/RDBMSmongodbpython데이터 엔지니어링

Answer 1

0

funcoding님의 프로필 이미지
funcoding
Instructor

우선 항상 무언가 문제가 있을때에는, 제가 드린 자료를 새로 다운받으셔서 그대로 테스트해보시고, 그 후에, 아주 작게 수정해보시면 좋을 것 같아요. 그 후에 해당 에러 메세지로도 검색해보시고요.

말씀하신 부분은 제 생각에는 앞에는 age > 20 이런 조건이 있고, 뒤에는 age = 0 이라고 써서, 조건 자체에 문제가 있어서 그런 것 도 같습니다. 그런데, 이 부분보다, 스스로 문제가 생겼을 때, 문제가 무엇인지를 찾아보고, 궁리해보는 습관을 들이시지 않으면, 해당 기술을 활용할 수가 없거든요. 이 부분을 계속 연습해보시면 훨씬 도움이 되실꺼예요.

taiky님의 프로필 이미지
taiky
Questioner

강의 내용에 따르면 {age: {$gt: 20}}은 검색 조건이고, { _id:0, user_id:1, age:0, status:0 } 부분은 출력여부 플래그인듯한데, 조건과 출력플래그가 상관관계가 있는건가요?

그리고 아래와 같이 age : 0을 빼고 실행해도 동일한 에러가 납니다.

db.employees.find({ age: {$gt: 20}}, { _id:0, user_id:1, status:0 })

 

taiky님의 프로필 이미지
taiky
Questioner

찾아보니 projection 설정시 '_id'를 제외하고는 'include'와 'exclude'는 혼용될 수 없다고 합니다.

https://www.mongodb.com/community/forums/t/projection-does-not-allow-exclusion-inclusion-together/31756

taiky's profile image
taiky

asked

Ask a question