Allow empty projection dictionary in find queries #418
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.
The current code that verifies pymongo query projections does not replicate MongoDB shell's behavior when the projection is an empty dictionary.
PyMongo verifies if the projection is not None, but before converting it to a proper dictionary with
helpers._fields_list_to_dict
, any projection whose boolean value is False gets replaced with{"id": 1}
. In the case of an empty dictionary, this is annoying, as it prevents creating a projection variable with an empty dictionary and optionally adding values to it.Simple problematic use case:
Not so elegant workaround to bypass this problem:
🤹♂️ 🐍