Hi there,
First off: great work.
We've bumped into a bit of an issue when trying to pass long hexadecimal strings. When passing these, mongo-querystring will coerce this into a number. Example: 0xfbede9b15fbeec9e1579653ac3af52b0a54ec2a3725150c64e681264cb18cbf6 gets converted to 0, which is clearly not the intention of the caller.
Ideally (but this is debatable), I believe values in hexadecimal notation should/could be passed on as strings instead of numbers. Most of the time in Mongoland, this kind of value is stored as a string (eg a hash of some sorts).
Questions that remain could be:
- How do we detect hexadecimal notation? (is
0x enough or do we want to go more in-depth?)
- What if we want this to convert to binary instead (some store this kind of value as binary instead, but I'd like to think this is a rare case)
- Should we strip the
0x or not? (guess this could be a user option)
Perhaps start a brief debate on this, and I'd be happy to provide a PR once you settle on a potential approach [if any, of course]? I'm also aware number parsing can be disabled altogether, but we have a need for parsing to numbers in other cases.
PS: for now, although horribly inefficient and not robust since it can result in false positives, this can be worked around by using the ~ operator.