I use mongo's explain() to check the performance of some queries, sometimes a keep_mutation stage will show up like the following:
"executionStats" : {
...
"executionStages" : {
"stage" : "KEEP_MUTATIONS",
"nReturned" : 1,
"executionTimeMillisEstimate" : 5460,
"works" : 79622,
...
}
}
I want to know more about this stage so I search through the internet, and to my surprise, I couldn't find useful info related to it even in the official document, let alone other websites. Could someone help to explain that?
KeepMutationsStage passes all of its child's data through until the child is EOF. It then returns all flagged elements in the WorkingSet that pass the stage's filter.
This stage is used to merge results that are invalidated mid-query back into the query results when possible. The query planner is responsible for determining when it's valid to merge these results.