2014-12-25 4 views
-2

MongoDB를 처음 사용했습니다. 이제 Mongo Shell 버전 2.6.6을 사용하고 있습니다. db.collection.find()를 사용하여 읽기 작업을 읽을 때 db.collection.find ({}) 및 db.collection.findOne() 읽기 작업도 발견했습니다. 이 읽기 작업을 사용하는 죄수 및 전문가는 무엇입니까? 쿼리가 일치하는 경우에도 .findOne() 만 반환 ONE 문서 반면,MongoDB 쿼리 문서

find
findOne

.find() 반환 쿼리 결과를 mathing하는 ALL 문서 :

+0

당신의 통찰력은 무엇입니까? 문제를 조사 했습니까? – Onots

답변

2

그것 명확하게하여 MongoDB의 문서에 명시된 다수 (첫 번째 객체를 찾을 것입니다)

응용 프로그램에서 차이점은 추가 실용적인 측면이 있습니다 - findOne()은 단지 하나의 json 객체를 반환하는 반면, find()은 json이 하나 인 경우에도 json의 배열을 반환합니다. (하나의 json으로 배열 될 것입니다)

+0

** db.collection.findOne() ** 메소드는 읽기 작업을 수행하여 단일 문서를 반환합니다. 내부적으로 ** db.collection.findOne() ** 메소드는 ** db.collection.find() ** 메소드이며, 한도는 1입니다. # 컬렉션의 모든 문서 선택 # 빈 쿼리 문서 ({})는 컬렉션의 모든 문서를 선택합니다. ** db.collection.find ({}) ** find() **에 쿼리 문서를 지정하지 않으면 빈 쿼리 문서를 지정하는 것과 같습니다. 따라서 다음 작업은 이전 작업과 동일합니다. ** db.collection.find() ** –

+1

당신은 물건을 생각할 것입니다. 'find()'=='find ({})','findOne()'=='findOne ({})'을 호출합니다. 'findOne()'은 첫 번째로 발견 된 문서를 반환하고 제한된 1 SQL 연산과 비교할 수 있지만 여기에서도 array를 반환하지 않습니다 (따라서 내부적으로는 1로만 제한되지 않고 다른 출력 형식이기도합니다). 그러나 단일 객체 . 모든 것은 mongodb 문서에서 명확하게 설명됩니다. – Jarema