| Steps To Reproduce: |
db.coll.drop()
|
db.coll.insert({_id:1, obj: {obj: {}}})
|
db.coll.aggregate([{$project: {“obj.obj.obj.str”: 1}}, {$addFields: {“obj.obj.array”: ‘abc’, “obj.obj.obj.num”: ‘xyz’}}])
|
|
{ “_id” : 1, “obj” : { “obj” : { “obj” : { “num” : “xyz” }, “array” : “abc” } } }
|
|
// Now we just add a $match stage, and the order of new fields changes.
|
db.coll.aggregate([{$match: {_id: 1}}, {$project: {“obj.obj.obj.str”: 1}}, {$addFields: {“obj.obj.array”: ‘abc’, “obj.obj.obj.num”: ‘xyz’}}])
|
|
{ “_id” : 1, “obj” : { “obj” : { “array” : “abc”, “obj” : { “num” : “xyz” } } }
|
|