summaryrefslogtreecommitdiff
path: root/jstests/core/query/explain/explain_missing_database.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/query/explain/explain_missing_database.js')
-rw-r--r--jstests/core/query/explain/explain_missing_database.js44
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);
+}());