Fix :: use $addFields instead of $project in rename and newcolumn steps #75
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR aims to replace $project by $addFields whenever possible.
When projecting a given key in a $project in a Mongo aggregation pipeline, you must specify that you project all other keys if you do not want to lose them. Therefore you would need to manipulate metadata to keep track of available columns, and it would generate a lot of noisy code (imagine that you need to add a new column and to keep 20 other ones, you will have a $project with 21 keys, of which 20 just saying
<key>: 1
...)$addFields is less verbose, and can be used not only to add a new key but also to modify a key inplace while keeping all other columns. Indeed, specifying an existing field name in an $addFields operation causes the original field to be replaced, while every other columns remain. See Mongo documentation