Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-4928

$regex query should assert if value is not a regex or a string

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor - P4
    • Resolution: Fixed
    • Affects Version/s: 2.0.2
    • Fix Version/s: 2.5.5
    • Component/s: Querying
    • Environment:
      Tested on Windows 7 64-bit but should be the same on all platforms.
    • Operating System:
      ALL

      Description

      To reproduce:

      > db.test.remove()
      > db.test.insert(

      {t:"a"}

      )
      > db.test.insert(

      {t:"b"}

      )
      > db.test.find({t:{$regex:[/^x/,/^y/]}})

      { "_id" : ObjectId("4f3530db0105ec90fee42bbd"), "t" : "a" } { "_id" : ObjectId("4f3530df0105ec90fee42bbe"), "t" : "b" }

      >

      The intent of the query was to return documents where t starts with "x" or "y", but the query is malformed. However, the server doesn't return any sort of error message and instead appears to just return all documents in the collection.

      The server should return an error message if the value of $regex is not a regular expression or a string.

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: