mongoose-double
mongoose-double copied to clipboard
fix: prevent CastError being triggered by literal NaN
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 with NaN values in number fields.
Previous behavior:
"harold"=>CastErrorNaN=>CastError1=> no error
New behavior:
"harold"=>CastErrorNaN=> no error1=> no error
Changes
- change the conditions for
CastErrorto throw for anything which resolves to a NaN, but not for literalNaNs
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.
I could see a case being made for removing the CastError entirely; instead writing non-numbers as NaN. I don't want to make it though.
@vkarpov15 are you interested in this change, or should I close this?