The actual change is in src/mongo/shell/collection.js with the remaining changes
to adjust tests to the new api.
The "ideal" arguments are now an array of pipeline ops and an optional object
with extra top-level options for the command (such as {explain: true}. For
backwards compatibility, we still support the varargs style where each argument
is a pipeline stage, but there is no way to specify extra parameters in this
mode.
90 lines
1.7 KiB
JavaScript
90 lines
1.7 KiB
JavaScript
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');
|