나와 함께 곰, 이건 내 질문이 아니야. 누군가를 이해하려고 노력하고 있습니다.쿼리가 예상보다 많은 결과를 반환합니다
저자 주 :
possible duplicate 질문 솔루션은 $ elemMatch 때문에>의 모든 요소가 배열되어 제한 할 수 있습니다. 이것은 조금 다릅니다.
따라서 허용되는 답변에서 주요 사항이 제기되었습니다. 이 동작은 은 이며은 이 아니며은 "사과와 오렌지를"과 비교해서는 안됩니다. 필드는 다른 유형이며, 이에 대한 해결 방법이 있지만 실제 세계에 가장 적합한 솔루션은 입니다.이 아닙니다.
해피 읽기 : 내가 검색하려고 문서의 컬렉션이
이 컬렉션에는 다음이 포함
{ "_id" : ObjectId("52faa8a695fa10cc7d2b7908"), "x" : 1 }
{ "_id" : ObjectId("52faa8ab95fa10cc7d2b7909"), "x" : 5 }
{ "_id" : ObjectId("52faa8ad95fa10cc7d2b790a"), "x" : 15 }
{ "_id" : ObjectId("52faa8b095fa10cc7d2b790b"), "x" : 25 }
{ "_id" : ObjectId("52faa8b795fa10cc7d2b790c"), "x" : [ 5, 25 ] }
그래서 나는 결과를 찾을하려는 X10
과 20
사이의 값입니다. 그래서 나에게 논리적 인 듯 쿼리입니다 :
db.collection.find({ x: {$gt: 10, $lt: 20} })
는 그러나 문제는이 결과에 두 개의 문서를 반환이다 : 나는 아무도과 두 번째 결과를 볼 것으로 예상하고 있지 않다
{ "_id" : ObjectId("52faa8ad95fa10cc7d2b790a"), "x" : 15 }
{ "_id" : ObjectId("52faa8b795fa10cc7d2b790c"), "x" : [ 5, 25 ] }
값은 10
과 20
사이입니다. 내가 예상 한 결과를 얻지 못하는 이유를 설명 할 수 있습니까? 내 생각에 { "x": 15} 만 반환해야합니다.
그렇다면 내가 예상 한 것을 어떻게 얻을 수 있습니까?
이 질문에 의도적 참조 인 [여기] (http://stackoverflow.com/questions/21715121/mongodb-descending-index-weird-behavior) 포스터가 묻지 않는 실제 질문으로되어 있습니다. 그들의 질문은 상황에 따라 답변되었지만,이 부분에 대한 대답은 비슷한 것을 묻는 사람에게 문제를 해결합니다. 누가 옳은 지 알아 봅시다. –
MongoDB가 하위 문서를 필터링하지 않기 때문에 – Sammaye
하위 문서를 필터링하지만 다음과 같은 것은 아닙니다. –