fix: allow null values inside $expr objects #12429
Merged
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.
Summary
Version 6.2.0 introduced a feature which casts literals inside
$expr
queries to their respective types based on the models schema. This pull request fixes an issue with this feature where JS would throw a null-reference error when usingnull
as a value inside$ifNull
arrays in the expression.The implemented fix is non-intrusive an solely checks if the value which is to be cast is
null
and preserves the value if it is.Examples
A common scenario is reproducing an
$exists
operator in an$expr
using$ifNull
. Let's say we want to fetch all books which don't have anauthorId
or where theauthorId
isnull
.Executing this code will output the following error