// Unindexed array sorting SERVER-2884

t = db.jstests_sort9;
t.drop();

t.save({a: []});
t.save({a: [[]]});
assert.eq(2, t.find({a: {$ne: 4}}).sort({a: 1}).itcount());
assert.eq(2, t.find({'a.b': {$ne: 4}}).sort({'a.b': 1}).itcount());
assert.eq(2, t.find({a: {$ne: 4}}).sort({'a.b': 1}).itcount());

t.drop();
t.save({});
assert.eq(1, t.find({a: {$ne: 4}}).sort({a: 1}).itcount());
assert.eq(1, t.find({'a.b': {$ne: 4}}).sort({'a.b': 1}).itcount());
assert.eq(1, t.find({a: {$ne: 4}}).sort({'a.b': 1}).itcount());
assert.eq(1, t.find({a: {$exists: 0}}).sort({a: 1}).itcount());
assert.eq(1, t.find({a: {$exists: 0}}).sort({'a.b': 1}).itcount());

t.drop();
t.save({a: {}});
assert.eq(1, t.find({a: {$ne: 4}}).sort({a: 1}).itcount());
assert.eq(1, t.find({'a.b': {$ne: 4}}).sort({'a.b': 1}).itcount());
assert.eq(1, t.find({a: {$ne: 4}}).sort({'a.b': 1}).itcount());
assert.eq(1, t.find({'a.b': {$exists: 0}}).sort({a: 1}).itcount());
assert.eq(1, t.find({'a.b': {$exists: 0}}).sort({'a.b': 1}).itcount());
