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.
29 lines
590 B
JavaScript
29 lines
590 B
JavaScript
// SERVER-6531 support $within in $match aggregation operations
|
|
|
|
c = db.s6531;
|
|
c.drop();
|
|
|
|
for (var x=0; x < 10; x++) {
|
|
for (var y=0; y < 10; y++) {
|
|
c.insert({loc: [x,y]});
|
|
}
|
|
}
|
|
|
|
function test(variant) {
|
|
query = {loc: {$within: {$center: [[5,5], 3]}}};
|
|
sort = {_id: 1};
|
|
aggOut = c.aggregate({$match:query}, {$sort: sort});
|
|
cursor = c.find(query).sort(sort);
|
|
|
|
assert.eq(aggOut.toArray(), cursor.toArray());
|
|
}
|
|
|
|
test("no index");
|
|
|
|
c.ensureIndex({loc:"2d"});
|
|
test("2d index");
|
|
|
|
c.dropIndex({loc:"2d"});
|
|
c.ensureIndex({loc:"2dsphere"});
|
|
test("2dsphere index");
|