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

Improve or remove support for dates in string expressions

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.6.0-rc0
    • Component/s: Aggregation Framework
    • Labels:
      None
    • Backwards Compatibility:
      Minor Change
    • Sprint:
      Query 2017-08-21, Query 2017-09-11, Query 2017-10-02, Query 2017-10-23

      Description

      A couple string expressions (notably in $substr(Bytes) and $concat) support dates as inputs, but do not include the number of milliseconds:

      > db.foo.insert({x: new Date()})
      WriteResult({ "nInserted" : 1 })
      > db.foo.find()
      { "_id" : ObjectId("56fae3003ef38a5ce210b230"), "x" : ISODate("2016-03-29T20:18:08.339Z") }
      > db.foo.aggregate({$project: {x: {$substr: ["$x", 0, 200]}}})
      { "_id" : ObjectId("56fae3003ef38a5ce210b230"), "x" : "2016-03-29T20:18:08" }
      

      We should either fix these places to include the number of milliseconds, or remove support for using these expressions with date types.

      One possible way forward is to add a $toString expression (related to SERVER-11400), then remove support and require an explicit conversion instead.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              charlie.swanson Charlie Swanson
              Reporter:
              charlie.swanson Charlie Swanson
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: