summaryrefslogtreecommitdiff
path: root/jstests/core/list_collections_name_only.js
blob: 9a89fed9e208e12706d2e9773235d9fa7b5bad1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Test nameOnly option of listCollections
(function() {
"use strict";

var mydb = db.getSiblingDB("list_collections_nameonly");
var res;
var collObj;

assert.commandWorked(mydb.dropDatabase());
assert.commandWorked(mydb.createCollection("foo"));
res = mydb.runCommand({listCollections: 1, nameOnly: true});
assert.commandWorked(res);
collObj = res.cursor.firstBatch[0];
// collObj should only have name and type fields.
assert.eq('foo', collObj.name);
assert.eq('collection', collObj.type);
assert(!collObj.hasOwnProperty("idIndex"), tojson(collObj));
assert(!collObj.hasOwnProperty("options"), tojson(collObj));
assert(!collObj.hasOwnProperty("info"), tojson(collObj));

// listCollections for views still works
assert.commandWorked(mydb.createView("bar", "foo", []));
res = mydb.runCommand({listCollections: 1, nameOnly: true});
assert.commandWorked(res);
print(tojson(res));
collObj = res.cursor.firstBatch.filter(function(c) {
    return c.name === "bar";
})[0];
assert.eq('bar', collObj.name);
assert.eq('view', collObj.type);
assert(!collObj.hasOwnProperty("options"), tojson(collObj));
assert(!collObj.hasOwnProperty("info"), tojson(collObj));
}());