diff options
Diffstat (limited to 'jstests/core/query/explain/explain_missing_database.js')
-rw-r--r-- | jstests/core/query/explain/explain_missing_database.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/jstests/core/query/explain/explain_missing_database.js b/jstests/core/query/explain/explain_missing_database.js new file mode 100644 index 00000000000..a1eb89e10e4 --- /dev/null +++ b/jstests/core/query/explain/explain_missing_database.js @@ -0,0 +1,44 @@ +// Test explain of various operations against a non-existent database +(function() { +var explainMissingDb = db.getSiblingDB("explainMissingDb"); + +var explain; +var explainColl; + +// .find() +explainMissingDb.dropDatabase(); +explain = explainMissingDb.collection.explain("executionStats").find().finish(); +assert.commandWorked(explain); +assert("executionStats" in explain); + +// .count() +explainMissingDb.dropDatabase(); +explain = explainMissingDb.collection.explain("executionStats").count(); +assert.commandWorked(explain); +assert("executionStats" in explain); + +// .remove() +explainMissingDb.dropDatabase(); +explain = explainMissingDb.collection.explain("executionStats").remove({a: 1}); +assert.commandWorked(explain); +assert("executionStats" in explain); + +// .update() with upsert: false +explainMissingDb.dropDatabase(); +explainColl = explainMissingDb.collection.explain("executionStats"); +explain = explainColl.update({a: 1}, {b: 1}); +assert.commandWorked(explain); +assert("executionStats" in explain); + +// .update() with upsert: true +explainMissingDb.dropDatabase(); +explainColl = explainMissingDb.collection.explain("executionStats"); +explain = explainColl.update({a: 1}, {b: 1}, {upsert: true}); +assert.commandWorked(explain); +assert("executionStats" in explain); + +// .aggregate() +explainMissingDb.dropDatabase(); +explain = explainMissingDb.collection.explain("executionStats").aggregate([{$match: {a: 1}}]); +assert.commandWorked(explain); +}()); |