NaN is a valid value in MongoDB for Number type attributes (i.e. doubles). This change is necessary to avoid superfluous errors when loading records with NaN values in number fields.
Previous behavior:
"harold" => CastError
NaN => CastError
1 => no error
New behavior:
"harold" => CastError
NaN => no error
1 => no error
Changes
change the conditions for CastError to throw for anything which resolves to a NaN, but not for literal NaNs
Thoughts
I think the decision to accept NaN as a valid number type in MongoDB is dubious, I don't see a valid reason for wanting to store it. That said, the world is imperfect and so is the data we deal with.
My judgement here is that it is better to handle the imperfections gracefully. Feel free to close if you don't agree, and I'll just keep using my fork.
Overview
NaN
is a valid value in MongoDB for Number type attributes (i.e. doubles). This change is necessary to avoid superfluous errors when loading records withNaN
values in number fields.Previous behavior:
"harold"
=>CastError
NaN
=>CastError
1
=> no errorNew behavior:
"harold"
=>CastError
NaN
=> no error1
=> no errorChanges
CastError
to throw for anything which resolves to a NaN, but not for literalNaN
sThoughts
I think the decision to accept
NaN
as a valid number type in MongoDB is dubious, I don't see a valid reason for wanting to store it. That said, the world is imperfect and so is the data we deal with.My judgement here is that it is better to handle the imperfections gracefully. Feel free to close if you don't agree, and I'll just keep using my fork.