22 lines
627 B
JavaScript
22 lines
627 B
JavaScript
// Basic test for $size.
|
|
|
|
var t = db.jstests_find_size;
|
|
t.drop();
|
|
|
|
t.save({arr: []});
|
|
t.save({arr: []});
|
|
t.save({arr: [1]});
|
|
t.save({arr: [1, 2, 3, 4]});
|
|
|
|
// ints and longs
|
|
assert.eq(2, t.count({arr: {$size: 0}}));
|
|
assert.eq(2, t.count({arr: {$size: NumberLong(0)}}));
|
|
assert.eq(1, t.count({arr: {$size: NumberInt(4)}}));
|
|
|
|
// bad inputs
|
|
var badInputs = [-1, NumberLong(-10000), "str", 3.2, 0.1, NumberLong(-9223372036854775808)];
|
|
badInputs.forEach(function(x) {
|
|
assert.commandFailed(db.runCommand({count: t.getName(), query: {arr: {$size: x}}}),
|
|
"$size argument " + x + " should have failed");
|
|
});
|