File: server6184.js

package info (click to toggle)
mongodb 1%3A3.2.11-2%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 196,404 kB
  • sloc: cpp: 1,412,793; ansic: 504,961; python: 78,522; perl: 5,837; sh: 5,661; java: 4,202; makefile: 1,784; pascal: 617; xml: 176; asm: 128
file content (22 lines) | stat: -rw-r--r-- 620 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// SERVER-6184 Support mixing nested and dotted fields with common prefixes

c = db.c;
c.drop();

c.save({a: 'missing', b: {c: 'bar', a: 'baz', z: 'not there'}});

function test(projection) {
    res = c.aggregate({$project: projection});
    assert.eq(res.toArray()[0], {b: {c: 'bar', a: 'baz'}});
}

test({_id: 0, b: {a: 1}, 'b.c': 1});
test({_id: 0, 'b.c': 1, b: {a: 1}});

// Synthetic fields should be in the order they appear in the $project

one = {
    $add: [1]
};
res = c.aggregate({$project: {_id: 0, 'A.Z': one, A: {Y: one, A: one}, 'A.B': one}});
assert.eq(res.toArray()[0], {A: {Z: 1, Y: 1, A: 1, B: 1}});