numericOrdering produce incorrect query results

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Works as Designed
    • Priority: Major - P3
    • None
    • Affects Version/s: 4.4.0, 5.0.0
    • Component/s: None
    • ALL
    • Hide
      db.createCollection('numericOrderingError', { collation: {locale: 'en_US', numericOrdering: true} });
      db.getCollection('numericOrderingError').insertMany([
        {"clientCode" : "A0001"},
        {"clientCode" : "A1"}
      ])
      db.getCollection('numericOrderingError').find({"clientCode": "A0001"})
      

       

      Output: A0001 and A1

      Expected: A0001

      Show
      db.createCollection( 'numericOrderingError' , { collation: {locale: 'en_US' , numericOrdering: true } }); db.getCollection( 'numericOrderingError' ).insertMany([ { "clientCode" : "A0001" }, { "clientCode" : "A1" } ]) db.getCollection( 'numericOrderingError' ).find({ "clientCode" : "A0001" })   Output: A0001 and A1 Expected: A0001
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      In collections with collation and "numericOrdering = true" the query results are incorrect when the search string includes zeros, leading zeros are ignored.
      According to the documentation, the numericOrdering option should only affect the comparison of numeric text strings (in the example "clientCode" includes letters)

            Assignee:
            Edwin Zhou
            Reporter:
            Germán Pedrosa
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: