MongoDB Querying : findOne에 대해서

# findOne() argument가 없으면 random한 document를 뽑는다.
* 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가 출력 될 것이다.