필드가 값으로 시작하는 문서를 찾으려고합니다.MongoDB "starts with"인덱스 된 하위 문서에 대한 쿼리를 수행 할 수 있습니까?
테이블 스캔은 notablescan을 사용하여 비활성화됩니다.
이 작동 :
db.articles.find({"url" : { $regex : /^http/ }})
이되지 않습니다
db.articles.find({"source.homeUrl" : { $regex : /^http/ }})
내가 오류를 얻을 :
error: { "$err" : "table scans not allowed:moreover.articles", "code" : 10111 }
인덱스가 모두 url
및 source.homeUrl
에 있습니다
{
"v" : 1,
"key" : {
"url" : 1
},
"ns" : "mydb.articles",
"name" : "url_1"
}
{
"v" : 1,
"key" : {
"source.homeUrl" : 1
},
"ns" : "mydb.articles",
"name" : "source.homeUrl_1",
"background" : true
}
subdocument 인덱스에 대한 정규식 쿼리에 제한이 있습니까?
작동해야합니까? 설명을 할 때 어떤 일이 발생합니까? db를 허용하는 스캔을 실행하려고 했습니까? (설명과 함께) –
나는 설명을 해보려고했지만 너무 오랫동안 그것을 죽여야했다. 테이블 스캔을 사용 가능하게하면 조회는 모두 예상 된 결과를 리턴합니다. – tjrobinson