diff options
Diffstat (limited to 'jstests/core/list_databases.js')
-rw-r--r-- | jstests/core/list_databases.js | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/jstests/core/list_databases.js b/jstests/core/list_databases.js index ecc746ce775..a52cfec656b 100644 --- a/jstests/core/list_databases.js +++ b/jstests/core/list_databases.js @@ -62,6 +62,16 @@ assert.eq(1, cmdRes.databases.length, tojson(cmdRes)); verifyNameOnly(cmdRes); + // $expr in filter. + cmdRes = assert.commandWorked(db.adminCommand( + {listDatabases: 1, filter: {$expr: {$eq: ["$name", "jstest_list_databases_zap"]}}})); + assert.eq(1, cmdRes.databases.length, tojson(cmdRes)); + assert.eq("jstest_list_databases_zap", cmdRes.databases[0].name, tojson(cmdRes)); + + // $expr with an unbound variable in filter. + assert.commandFailed( + db.adminCommand({listDatabases: 1, filter: {$expr: {$eq: ["$name", "$$unbound"]}}})); + // No extensions are allowed in filters. assert.commandFailed(db.adminCommand({listDatabases: 1, filter: {$text: {$search: "str"}}})); assert.commandFailed(db.adminCommand({ @@ -76,6 +86,4 @@ listDatabases: 1, filter: {a: {$nearSphere: {$geometry: {type: "Point", coordinates: [0, 0]}}}} })); - - assert.commandFailed(db.adminCommand({listDatabases: 1, filter: {$expr: {$eq: ["$a", 5]}}})); }()); |