-
Type:
Bug
-
Resolution: Duplicate
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Querying
-
None
-
ALL
-
None
-
None
-
None
-
None
-
None
-
None
-
None
The server version is 2.4.8. The following query is not using indexes.
S-haystackdbec2-0:PRIMARY> db.streams.find({$or:[ {statusNeedsRefresh:true},{site:'youtube', status:'ondemand', publishedDate:{$exists:false}}] }).explain();
"cursor" : "BasicCursor",
"isMultiKey" : false,
"n" : 6,
"nscannedObjects" : 1992659,
"nscanned" : 1992659,
"nscannedObjectsAllPlans" : 1992659,
"nscannedAllPlans" : 1992659,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 178,
"nChunkSkips" : 0,
"millis" : 10890,
"indexBounds" : {
},
"server" : "ip-172-31-42-250:27017"
This query seems to work
RS-haystackdbec2-0:PRIMARY> db.streams.find({$or:[{statusNeedsRefresh:true}, {publishedDate:null, site:'youtube',status:'ondemand'}]}).explain();
{
"clauses" : [
{
"cursor" : "BtreeCursor statusNeedsRefresh_1",
"isMultiKey" : false,
"n" : 6,
"nscannedObjects" : 6,
"nscanned" : 6,
"nscannedObjectsAllPlans" : 6,
"nscannedAllPlans" : 6,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 1,
"indexBounds" : {
"statusNeedsRefresh" : [
[
true,
true
]
]
}
},
{
"cursor" : "BtreeCursor status_1_lang_1_publishedDate_1",
"isMultiKey" : false,
"n" : 0,
"nscannedObjects" : 3,
"nscanned" : 75,
"nscannedObjectsAllPlans" : 255,
"nscannedAllPlans" : 327,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 2,
"indexBounds" : {
"status" : [
[
"ondemand",
"ondemand"
]
],
"lang" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
],
"publishedDate" : [
[
null,
null
]
]
}
}
],
"n" : 6,
"nscannedObjects" : 9,
"nscanned" : 81,
"nscannedObjectsAllPlans" : 261,
"nscannedAllPlans" : 333,
"millis" : 3,
"server" : "ip-172-31-42-250:27017"
}
Here are all the indexes
RS-haystackdbec2-0:PRIMARY> db.streams.getIndexes();
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "haystackdb.streams",
"name" : "_id_"
},
{
"v" : 1,
"key" : {
"sourceUrl" : 1
},
"unique" : true,
"ns" : "haystackdb.streams",
"name" : "sourceUrl_1",
"background" : true,
"safe" : null
},
{
"v" : 1,
"key" : {
"tsLastUpdated" : 1
},
"ns" : "haystackdb.streams",
"name" : "tsLastUpdated_1",
"background" : true
},
{
"v" : 1,
"key" : {
"tweetsPerHour" : 1
},
"ns" : "haystackdb.streams",
"name" : "tweetsPerHour_1",
"background" : true
},
{
"v" : 1,
"key" : {
"publishedDate" : 1
},
"ns" : "haystackdb.streams",
"name" : "publishedDate_1",
"background" : true
},
{
"v" : 1,
"key" : {
"twitterTags" : 1
},
"ns" : "haystackdb.streams",
"name" : "twitterTags_1",
"background" : true
},
{
"v" : 1,
"key" : {
"popularityScore" : 1
},
"ns" : "haystackdb.streams",
"name" : "popularityScore_1",
"background" : true
},
{
"v" : 1,
"key" : {
"_id" : 1,
"sourceUrl" : 1
},
"ns" : "haystackdb.streams",
"name" : "_id_1_sourceUrl_1",
"background" : true
},
{
"v" : 1,
"key" : {
"site" : 1,
"author" : 1,
"category" : 1
},
"ns" : "haystackdb.streams",
"name" : "site_1_author_1_category_1",
"background" : true
},
{
"v" : 1,
"key" : {
"tags" : 1
},
"ns" : "haystackdb.streams",
"name" : "tags_1",
"background" : true
},
{
"v" : 1,
"key" : {
"lang" : 1,
"tweetsPerHour" : 1
},
"ns" : "haystackdb.streams",
"name" : "lang_1_tweetsPerHour_1",
"background" : true
},
{
"v" : 1,
"key" : {
"trackedChannel" : 1,
"site" : 1,
"publishedDate" : 1
},
"ns" : "haystackdb.streams",
"name" : "trackedChannel_1_site_1_publishedDate_1",
"background" : true
},
{
"v" : 1,
"key" : {
"site" : 1,
"status" : 1,
"tsLastBookkeeping" : 1,
"trackedChannel" : 1
},
"ns" : "haystackdb.streams",
"name" : "site_1_status_1_tsLastBookkeeping_1_trackedChannel_1",
"background" : true
},
{
"v" : 1,
"key" : {
"title" : 1
},
"ns" : "haystackdb.streams",
"name" : "title_1"
},
{
"v" : 1,
"key" : {
"titleReverse" : 1
},
"ns" : "haystackdb.streams",
"name" : "titleReverse_1",
"sparse" : true,
"background" : true
},
{
"v" : 1,
"key" : {
"highestPopularityScore" : 1
},
"ns" : "haystackdb.streams",
"name" : "highestPopularityScore_1",
"sparse" : true,
"background" : true
},
{
"v" : 1,
"key" : {
"status" : 1,
"lang" : 1,
"publishedDate" : 1
},
"ns" : "haystackdb.streams",
"name" : "status_1_lang_1_publishedDate_1"
},
{
"v" : 1,
"key" : {
"haystackTags" : 1,
"publishedDate" : -1
},
"ns" : "haystackdb.streams",
"name" : "haystackTags_1_publishedDate_-1",
"background" : true
},
{
"v" : 1,
"key" : {
"category" : 1,
"publishedDate" : -1,
"popularityScore" : -1
},
"ns" : "haystackdb.streams",
"name" : "category_1_publishedDate_-1_popularityScore_-1",
"background" : true
},
{
"v" : 1,
"key" : {
"author" : 1,
"publishedDate" : 1,
"popularityScore" : -1
},
"ns" : "haystackdb.streams",
"name" : "author_1_publishedDate_1_popularityScore_-1",
"background" : true
},
{
"v" : 1,
"key" : {
"statusNeedsRefresh" : 1
},
"ns" : "haystackdb.streams",
"name" : "statusNeedsRefresh_1",
"sparse" : true,
"background" : true
}
]
RS-haystackdbec2-0:PRIMARY>