var s3832 = db.c;
s3832.drop();

s3832.save({_id: 1, a: "foo", b: "bar"});
s3832.save({_id: 2, a: "feh", b: "baz"});
s3832.save({_id: 3, a: "fee", b: "fum"});

var a1 = s3832.aggregate({$match: {b: "baz"}});

var a1result = [{"_id": 2, "a": "feh", "b": "baz"}];

assert.eq(a1.toArray(), a1result, 's3832.a1 failed');

var a2 = s3832.aggregate({$sort: {a: 1}});

var a2result = [
    {"_id": 3, "a": "fee", "b": "fum"},
    {"_id": 2, "a": "feh", "b": "baz"},
    {"_id": 1, "a": "foo", "b": "bar"}
];

assert.eq(a2.toArray(), a2result, 's3832.a2 failed');

var a3 = s3832.aggregate({$match: {b: "baz"}}, {$sort: {a: 1}});

assert.eq(a3.toArray(), a1result, 's3832.a3 failed');

db.s3832.ensureIndex({b: 1}, {name: "s3832_b"});

var a4 = s3832.aggregate({$match: {b: "baz"}});

assert.eq(a4.toArray(), a1result, 's3832.a4 failed');

var a5 = s3832.aggregate({$sort: {a: 1}});

assert.eq(a5.toArray(), a2result, 's3832.a5 failed');

var a6 = s3832.aggregate({$match: {b: "baz"}}, {$sort: {a: 1}});

assert.eq(a6.toArray(), a1result, 's3832.a6 failed');

var dropb = db.s3832.dropIndex("s3832_b");

db.s3832.ensureIndex({a: 1}, {name: "s3832_a"});

var a7 = s3832.aggregate({$match: {b: "baz"}});

assert.eq(a7.toArray(), a1result, 's3832.a7 failed');

var a8 = s3832.aggregate({$sort: {a: 1}});

assert.eq(a8.toArray(), a2result, 's3832.a8 failed');

var a9 = s3832.aggregate({$match: {b: "baz"}}, {$sort: {a: 1}});

assert.eq(a9.toArray(), a1result, 's3832.a9 failed');
