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');