db.merging.insert({_id: 0, subObject: {b: 1, c: 1}})
db.merging.aggregate([{$project: {newDocument: {$mergeObjects: ["$subObject", {d: 1}]}}}]);
{_id: 0, newDocument: {b: 1, c: 1, d: 1}}
db.merging.insert({_id: 0, field0: 0, field1: 1})
db.merging.aggregate([{$project: {newDocument: {$mergeObjects: ["$$ROOT", {newField: "newValue"}]}}}]);
{_id: 0, newDocument: {_id: 0, field0: 0, field1: 1, newField: "newValue"}}
db.merging.insert({_id: 0, field0: 0, field1: 1})
db.merging.aggregate([{$project: {newDocument: {$mergeObjects: ["$$ROOT", {field0: "newValue"}]}}}]);
{_id: 0, newDocument: {_id: 0, field0: "newValue", field1: 1}}
db.merging.insert({_id: 0, field0: 0, field1: 1})
db.merging.aggregate([{$project: {newDocument: {$mergeObjects: [{field0: "defaultValue"}, "$$ROOT"]}}}]);
{_id: 0, newDocument: {_id: 0, field0: 0, field1: 1}}
db.merging.insert({_id: 0, field0: 0, subdoc: {a: 1, b: 3}})
db.merging.aggregate([{$replaceRoot: {newRoot: {$mergeObjects: ["$$ROOT", "$subdoc"]}}}])
{_id: 0, field0: 0, subdoc: {a: 1, b: 3}, a: 1, b: 3}