나는 내 컬렉션에 같은 문서 구조를 가지고 범위 쿼리에 바인딩을 사용하지 않습니다MongoDB의 지수는
{
"deviceId" : "9113",
"data" : {
"qIdx" : 106
"points" : [
{ "eDate" : "2013-06-10T00:00:13.000Z" } ,
{ "eDate" : "2013-06-10T00:00:14.000Z" }
]
} ,
"rdate" : { "$date" : "2013-05-30T22:25:04.359Z"} ,
"_id" : { "$oid" : "51a7d1c0debcab563502cc41" }
}
내가 가진 인덱스 :
{deviceId: 1, data.points.eDate: 1}
내가 좋아하는 쿼리를 수행 할 때 :
를{
deviceId: "9113",
data.points.eDate: {
$gt: "2013-05-11T00:00:00.000Z",
$lt:"2013-05-12T00:00:00.000Z"
}
}
색인은 하나의 경계를 사용하지 않습니다. 설명 :
,{
"cursor" : "BtreeCursor deviceId_1_data.points.eDate_1" ,
"nscanned" : 4015 ,
"nscannedObjects" : 4015 ,
"n" : 10 , "millis" : 8297 ,
"nYields" : 103 ,
"nChunkSkips" : 0 ,
"isMultiKey" : true ,
"indexOnly" : false ,
"indexBounds" : {
"deviceId" : [[ "9113" , "9113"]],
"data.points.eDate" : [
[ "2013-05-11T00:00:00.000Z" , { }]
]
}
}
내 MongoDB의 버전 모두 인덱스 범위를 사용하는 데 문제가 문서는 $된다하고 $ LT를 만족 다른 EDATE을 만족 한 EDATE를 가질 수 있다는 것이다 2.0.7
귀하의 $ lt 및 $ gt 인수는 동일한 값을 가지므로 귀하의 범위는 어떻게 되겠습니까? 최신 MongoDB 버전 (2.4.4)으로 업그레이드 할 것을 강력히 권합니다. – Derick
고정 된 것, 그냥 오타입니다 –
좋아, 시도합시다. 나는 이것이 2.2/2.4에서 크게 향상되었다고 확신한다. – Derick