Search code examples
mongodbkeycase-insensitive

MongoDB case insensitive key search


I am able to query values without regard to case, but I would like to to query keys insensitively, so users can type them in all lower case.

This doesn't work, because it is not valid JSON:

{
   /^lastName$/i: "Jones"
}

Is there a strategy I could use for this, besides just making a new collection of keys as values?


Solution

  • There is currently no way to do this.

    MongoDB is "schema-free" but that should not be confused with "doesn't have a schema". There's an implicit assumption that your code has some control over the names of the keys that actually appear in the system.

    Let's flip the question around.

    • Is there a good reason that users are inserting case-sensitive keys?
    • Can you just cast all keys to lower-case when they're inserted?

    Again, MongoDB assumes that you have some knowledge of the available keys. Your question implies that you have no knowledge of the available keys. You'll need to close this gap.