Files
mongo/jstests/aggregation/sources/project/nested_dotted_common_prefix.js
Zac 591928c619 SERVER-108478 JS formatted by prettier and remove clang-format (#39656)
GitOrigin-RevId: 6c8f6aded47f260aa4f7c231b17dae3302cb1e04
2025-08-21 17:27:09 +00:00

22 lines
671 B
JavaScript

// SERVER-6184 Support mixing nested and dotted fields with common prefixes
// @tags: [tests_projection_field_order]
let c = db.c;
c.drop();
c.save({a: "missing", b: {c: "bar", a: "baz", z: "not there"}});
function test(projection) {
let 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
let one = {$add: [1]};
let 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}});