* findOne의 first argument
findOne의 first argument는 document인데,
이 document에 우리가 무엇을 찾을 것인지에 대한 criteria를 써준다.
예를 들어,
- db.people.findOne({"name":"Jones"}); 라고 하면,
name field가 "Jones"인 document를 하나 뽑을 것이다.
* findOne의 second argument
findOne의 second argument 또한 document 이다.
이 document에는 우리가 first argument에서 찾은 결과물에 대해서
어떠한 것만 뽑아낼 것인지에 대해서 지정한다.
second argument document의 기본 구조는 이렇다.
- {"field1" : true , "field2":true , "_id":false}
key값에 document의 field를 입력하고 , value로 boolean 값을 입력해준다.
boolean 값이 true인 것들만 출력한다.
기본적으로, 출력하고 싶지 않은 것은 따로 false로 지정해줄 필요가 없다.
단, _id는 자동적으로 출력이 되게끔 설정이 되어있기때문에,
_id 값을 출력하고 싶지않다면 따로 false로 지정해주어야 한다.
_id field를 제외한 모든 field는 기본적으로 false 값으로 설정되어 있다.
예를 들어,
- db.people.findOne({"name":"Jones"},{"name":true,"_id":false}); 라고 하면
first argument를 거쳐 name field 가 "Jones" 인 document를 우선 뽑아낼 것이고,
이를 토대로, second argument를 거쳐 name field를 제외한 나머지 field들은 나오지 않는
document가 출력 될 것이다.