Thanks for replying @Ronan_Merrick !
I also forgot to include a later field in the index which is a boolean approvedDoc
. My bad, including it now in the following plans. The index is: date: 1, listField: 1, approvedDoc: 1
.
- The version I’m using is 5.0.6 via Docker.
- The output from explain() using allPlansExecution mode is the following:
Not maching indexes:
{
"explainVersion" : "1",
"queryPlanner" : {
"namespace" : "my_db.my_collection",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$in" : [ "field1_b", "field1_a" ]
}
},
{
"listField" : {
"$in" : [ "field2_b", "field2_a" ]
}
}
]
},
"optimizedPipeline" : true,
"maxIndexedOrSolutionsReached" : false,
"maxIndexedAndSolutionsReached" : false,
"maxScansToExplodeReached" : false,
"winningPlan" : {
"stage" : "FETCH",
"filter" : {
"listField" : {
"$in" : [ "field2_b", "field2_a" ]
}
},
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field1_b\", \"field1_b\"]", "[\"field1_a\", \"field1_a\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
}
}
},
"rejectedPlans" : [ ]
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 297825,
"executionTimeMillis" : 3497,
"totalKeysExamined" : 383780,
"totalDocsExamined" : 383756,
"executionStages" : {
"stage" : "FETCH",
"filter" : {
"listField" : {
"$in" : [ "field2_b", "field2_a" ]
}
},
"nReturned" : 297825,
"executionTimeMillisEstimate" : 2195,
"works" : 383780,
"advanced" : 297825,
"needTime" : 85954,
"needYield" : 0,
"saveState" : 431,
"restoreState" : 431,
"isEOF" : 1,
"docsExamined" : 383756,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "IXSCAN",
"nReturned" : 383756,
"executionTimeMillisEstimate" : 317,
"works" : 383780,
"advanced" : 383756,
"needTime" : 23,
"needYield" : 0,
"saveState" : 431,
"restoreState" : 431,
"isEOF" : 1,
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field1_b\", \"field1_b\"]", "[\"field1_a\", \"field1_a\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
},
"keysExamined" : 383780,
"seeks" : 24,
"dupsTested" : 383756,
"dupsDropped" : 0
}
},
"allPlansExecution" : [ ]
},
"command" : {
"aggregate" : "my_collection",
"pipeline" : [
{
"$match" : {
"date" : {
"$gte" : ISODate("..."),
"$lt" : ISODate("...")
},
"$and" : [
{
"$or" : [
{
"listField" : "field1_a"
},
{
"listField" : "field1_b"
}
]
},
{
"$or" : [
{
"listField" : "field2_a"
},
{
"listField" : "field2_b"
}
]
}
]
}
}
],
"cursor" : {
},
"$db" : "my_db"
},
"serverInfo" : {
"port" : 27017,
"version" : "5.0.6"
},
"serverParameters" : {
"internalQueryFacetBufferSizeBytes" : 104857600,
"internalQueryFacetMaxOutputDocSizeBytes" : 104857600,
"internalLookupStageIntermediateDocumentMaxSizeBytes" : 104857600,
"internalDocumentSourceGroupMaxMemoryBytes" : 104857600,
"internalQueryMaxBlockingSortMemoryUsageBytes" : 104857600,
"internalQueryProhibitBlockingMergeOnMongoS" : 0,
"internalQueryMaxAddToSetBytes" : 104857600,
"internalDocumentSourceSetWindowFieldsMaxMemoryBytes" : 104857600
},
"ok" : 1
}
Matching indexes within $or:
{
"explainVersion" : "1",
"queryPlanner" : {
"namespace" : "my_db.my_collection",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [
{
"$or" : [
{
"$and" : [
{
"listField" : {
"$eq" : "field1_a"
}
},
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
}
]
},
{
"$and" : [
{
"listField" : {
"$eq" : "field1_b"
}
},
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
}
]
}
]
},
{
"$or" : [
{
"$and" : [
{
"listField" : {
"$eq" : "field2_a"
}
},
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
}
]
},
{
"$and" : [
{
"listField" : {
"$eq" : "field2_b"
}
},
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
}
]
}
]
},
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
}
]
},
"optimizedPipeline" : true,
"maxIndexedOrSolutionsReached" : false,
"maxIndexedAndSolutionsReached" : false,
"maxScansToExplodeReached" : false,
"winningPlan" : {
"stage" : "FETCH",
"filter" : {
"$or" : [
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_a"
}
}
]
},
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_b"
}
}
]
}
]
},
"inputStage" : {
"stage" : "OR",
"inputStages" : [
{
"stage" : "IXSCAN",
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field1_a\", \"field1_a\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
}
},
{
"stage" : "IXSCAN",
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field1_b\", \"field1_b\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
}
}
]
}
},
"rejectedPlans" : [
{
"stage" : "FETCH",
"filter" : {
"$or" : [
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field1_a"
}
}
]
},
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field1_b"
}
}
]
}
]
},
"inputStage" : {
"stage" : "OR",
"inputStages" : [
{
"stage" : "IXSCAN",
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field2_a\", \"field2_a\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
}
},
{
"stage" : "IXSCAN",
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field2_b\", \"field2_b\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
}
}
]
}
},
{
"stage" : "FETCH",
"filter" : {
"$and" : [
{
"$or" : [
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field1_a"
}
}
]
},
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field1_b"
}
}
]
}
]
},
{
"$or" : [
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_a"
}
}
]
},
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_b"
}
}
]
}
]
}
]
},
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[MinKey, MaxKey]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
}
}
}
]
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 297825,
"executionTimeMillis" : 7228,
"totalKeysExamined" : 383788,
"totalDocsExamined" : 383756,
"executionStages" : {
"stage" : "FETCH",
"filter" : {
"$or" : [
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_a"
}
}
]
},
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_b"
}
}
]
}
]
},
"nReturned" : 297825,
"executionTimeMillisEstimate" : 5667,
"works" : 383788,
"advanced" : 297825,
"needTime" : 85962,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 1,
"docsExamined" : 383756,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "OR",
"nReturned" : 383756,
"executionTimeMillisEstimate" : 489,
"works" : 383788,
"advanced" : 383756,
"needTime" : 31,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 1,
"dupsTested" : 383756,
"dupsDropped" : 0,
"inputStages" : [
{
"stage" : "IXSCAN",
"nReturned" : 150432,
"executionTimeMillisEstimate" : 218,
"works" : 150448,
"advanced" : 150432,
"needTime" : 15,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 1,
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field1_a\", \"field1_a\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
},
"keysExamined" : 150448,
"seeks" : 16,
"dupsTested" : 150432,
"dupsDropped" : 0,
"indexDef" : {
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"direction" : "forward"
}
},
{
"stage" : "IXSCAN",
"nReturned" : 233324,
"executionTimeMillisEstimate" : 228,
"works" : 233340,
"advanced" : 233324,
"needTime" : 15,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 1,
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field1_b\", \"field1_b\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
},
"keysExamined" : 233340,
"seeks" : 16,
"dupsTested" : 233324,
"dupsDropped" : 0,
"indexDef" : {
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"direction" : "forward"
}
}
]
}
},
"allPlansExecution" : [
{
"nReturned" : 101,
"executionTimeMillisEstimate" : 101,
"totalKeysExamined" : 258,
"totalDocsExamined" : 258,
"executionStages" : {
"stage" : "FETCH",
"filter" : {
"$or" : [
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_a"
}
}
]
},
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_b"
}
}
]
}
]
},
"nReturned" : 101,
"executionTimeMillisEstimate" : 101,
"works" : 258,
"advanced" : 101,
"needTime" : 157,
"needYield" : 0,
"saveState" : 19,
"restoreState" : 19,
"isEOF" : 0,
"docsExamined" : 258,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "OR",
"nReturned" : 258,
"executionTimeMillisEstimate" : 0,
"works" : 258,
"advanced" : 258,
"needTime" : 0,
"needYield" : 0,
"saveState" : 19,
"restoreState" : 19,
"isEOF" : 0,
"dupsTested" : 258,
"dupsDropped" : 0,
"inputStages" : [
{
"stage" : "IXSCAN",
"nReturned" : 258,
"executionTimeMillisEstimate" : 0,
"works" : 258,
"advanced" : 258,
"needTime" : 0,
"needYield" : 0,
"saveState" : 19,
"restoreState" : 19,
"isEOF" : 0,
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field1_a\", \"field1_a\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
},
"keysExamined" : 258,
"seeks" : 1,
"dupsTested" : 258,
"dupsDropped" : 0
},
{
"stage" : "IXSCAN",
"nReturned" : 0,
"executionTimeMillisEstimate" : 0,
"works" : 0,
"advanced" : 0,
"needTime" : 0,
"needYield" : 0,
"saveState" : 19,
"restoreState" : 19,
"isEOF" : 0,
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field1_b\", \"field1_b\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
},
"keysExamined" : 0,
"seeks" : 0,
"dupsTested" : 0,
"dupsDropped" : 0
}
]
}
}
},
{
"nReturned" : 92,
"executionTimeMillisEstimate" : 191,
"totalKeysExamined" : 258,
"totalDocsExamined" : 258,
"executionStages" : {
"stage" : "FETCH",
"filter" : {
"$or" : [
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field1_a"
}
}
]
},
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field1_b"
}
}
]
}
]
},
"nReturned" : 92,
"executionTimeMillisEstimate" : 191,
"works" : 258,
"advanced" : 92,
"needTime" : 166,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 0,
"docsExamined" : 258,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "OR",
"nReturned" : 258,
"executionTimeMillisEstimate" : 0,
"works" : 258,
"advanced" : 258,
"needTime" : 0,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 0,
"dupsTested" : 258,
"dupsDropped" : 0,
"inputStages" : [
{
"stage" : "IXSCAN",
"nReturned" : 258,
"executionTimeMillisEstimate" : 0,
"works" : 258,
"advanced" : 258,
"needTime" : 0,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 0,
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field2_a\", \"field2_a\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
},
"keysExamined" : 258,
"seeks" : 1,
"dupsTested" : 258,
"dupsDropped" : 0
},
{
"stage" : "IXSCAN",
"nReturned" : 0,
"executionTimeMillisEstimate" : 0,
"works" : 0,
"advanced" : 0,
"needTime" : 0,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 0,
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[\"field2_b\", \"field2_b\"]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
},
"keysExamined" : 0,
"seeks" : 0,
"dupsTested" : 0,
"dupsDropped" : 0
}
]
}
}
},
{
"nReturned" : 24,
"executionTimeMillisEstimate" : 77,
"totalKeysExamined" : 258,
"totalDocsExamined" : 258,
"executionStages" : {
"stage" : "FETCH",
"filter" : {
"$and" : [
{
"$or" : [
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field1_a"
}
}
]
},
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field1_b"
}
}
]
}
]
},
{
"$or" : [
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_a"
}
}
]
},
{
"$and" : [
{
"date" : {
"$lt" : ISODate("...")
}
},
{
"date" : {
"$gte" : ISODate("...")
}
},
{
"listField" : {
"$eq" : "field2_b"
}
}
]
}
]
}
]
},
"nReturned" : 24,
"executionTimeMillisEstimate" : 77,
"works" : 258,
"advanced" : 24,
"needTime" : 234,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 0,
"docsExamined" : 258,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "IXSCAN",
"nReturned" : 258,
"executionTimeMillisEstimate" : 0,
"works" : 258,
"advanced" : 258,
"needTime" : 0,
"needYield" : 0,
"saveState" : 549,
"restoreState" : 549,
"isEOF" : 0,
"keyPattern" : {
"date" : 1,
"listField" : 1,
"approvedDoc" : 1
},
"indexName" : "date_1_listField_1_approvedDoc_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"date" : [ ],
"listField" : [ "listField" ],
"approvedDoc" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"date" : [ "[new Date(...), new Date(...))" ],
"listField" : [ "[MinKey, MaxKey]" ],
"approvedDoc" : [ "[MinKey, MaxKey]" ]
},
"keysExamined" : 258,
"seeks" : 1,
"dupsTested" : 258,
"dupsDropped" : 0
}
}
}
]
},
"command" : {
"aggregate" : "my_collection",
"pipeline" : [
{
"$match" : {
"date" : {
"$gte" : ISODate("..."),
"$lt" : ISODate("...")
},
"$and" : [
{
"$or" : [
{
"date" : {
"$gte" : ISODate("..."),
"$lt" : ISODate("...")
},
"listField" : "field1_a"
},
{
"date" : {
"$gte" : ISODate("..."),
"$lt" : ISODate("...")
},
"listField" : "field1_b"
}
]
},
{
"$or" : [
{
"date" : {
"$gte" : ISODate("..."),
"$lt" : ISODate("...")
},
"listField" : "field2_a"
},
{
"date" : {
"$gte" : ISODate("..."),
"$lt" : ISODate("...")
},
"listField" : "field2_b"
}
]
}
]
}
}
],
"cursor" : {
},
"$db" : "my_db"
},
"serverInfo" : {
"port" : 27017,
"version" : "5.0.6"
},
"serverParameters" : {
"internalQueryFacetBufferSizeBytes" : 104857600,
"internalQueryFacetMaxOutputDocSizeBytes" : 104857600,
"internalLookupStageIntermediateDocumentMaxSizeBytes" : 104857600,
"internalDocumentSourceGroupMaxMemoryBytes" : 104857600,
"internalQueryMaxBlockingSortMemoryUsageBytes" : 104857600,
"internalQueryProhibitBlockingMergeOnMongoS" : 0,
"internalQueryMaxAddToSetBytes" : 104857600,
"internalDocumentSourceSetWindowFieldsMaxMemoryBytes" : 104857600
},
"ok" : 1
}