API는 특정 매개 변수를 사용하여 MongoDB에서 동일한 데이터를 요청합니다. 하지만 쿼리 매개 변수가 null이거나 정의되지 않은 경우 문서를 반환하고 싶지 않습니다. 반대로 MongoDB는 모든 문서를 반환 합니다 . 왜 그리고 이것이 정상입니까?
await exampleModel.find({}).lean().exec() // return all docs. That's okay.
await exampleModel.find(null).lean().exec() // return all docs. That's weird.
await exampleModel.find(undefined).lean().exec() // return all docs. That's weird.
예, 이것은 정상 입니다. MongoDB 는 매개 변수를 {}
전달 null
하거나 undefined
전달하지 않을 때 ( ) 기본적으로 빈 필터 ( ) 를 사용합니다 foo.find()
. 어쨌든 filter
및 projection
(두 번째 매개 변수)는 선택 사항입니다.
query
: 쿼리 연산자를 사용하여 선택 필터를 지정합니다. 컬렉션의 모든 문서를 반환하려면이 매개 변수를 생략하거나 빈 문서 ({})를 전달하십시오.
projection
: 쿼리 필터와 일치하는 문서에서 반환 할 필드를 지정합니다. 일치하는 문서의 모든 필드를 리턴하려면이 매개 변수를 생략하십시오.
쿼리가 null이거나 정의되지 않은 경우 아무것도 반환하지 않으려면 다음과 같이 작성할 수 있습니다.
const results = query ? await exampleModel.find(query).lean.exec() : []
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다