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.
13 lines
365 B
JavaScript
13 lines
365 B
JavaScript
// projecting a non-existent subfield should work as it does in a query with projection
|
|
c = db.c;
|
|
c.drop();
|
|
|
|
c.save({a:[1]});
|
|
c.save({a:{c:1}});
|
|
c.save({a:[{c:1},{b:1,c:1},{c:1}]});
|
|
c.save({a:1});
|
|
c.save({b:1});
|
|
|
|
// assert the aggregation and the query produce the same thing
|
|
assert.eq(c.aggregate({$project:{'a.b':1}}).toArray(), c.find({}, {'a.b':1}).toArray());
|