summaryrefslogtreecommitdiff
path: root/jstests/aggregation/bugs/server6185.js
blob: cf084d4b37146c990c5312756e1344e2dbb6d101 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 * Tests that projecting a non-existent subfield behaves identically in both query and aggregation.
 */
(function() {
    "use strict";
    const coll = db.c;
    coll.drop();

    assert.writeOK(coll.insert({a: [1]}));
    assert.writeOK(coll.insert({a: {c: 1}}));
    assert.writeOK(coll.insert({a: [{c: 1}, {b: 1, c: 1}, {c: 1}]}));
    assert.writeOK(coll.insert({a: 1}));
    assert.writeOK(coll.insert({b: 1}));

    assert.eq(coll.aggregate([{$project: {'a.b': 1}}, {$sort: {_id: 1}}]).toArray(),
              coll.find({}, {'a.b': 1}).sort({_id: 1}).toArray());
}());