Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-9548

Docs for SERVER-7695: Add variants of $week, $year, $dayOfWeek that conform to the ISO-6801 spec

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • # Replies:
      1
    • Last comment by Customer:
      true

      Description

      Engineering Ticket Description:

      We've decided to add the following operators:

      • $isoWeek
      • $isoDayOfWeek
      • $isoWeekYear

      And to add the corresponding substitutions "%G", "%V", and "%u" to the $dateToString expression.

      Example

      Input

      {_id: 0, date: ISODate("2016-01-01T00:00:00Z")}  // Thu, Jan 1, 2016
      

      Pipeline

      db.coll.aggregate([{
          $project: {
              dayOfWeek: {$dayOfWeek: "$date"},
              isoDayOfWeek: {$isoDayOfWeek: "$date"},
              year: {$year: "$date"},
              isoYear: {$isoWeekYear: "$date"},
              week: {$week: "$date"},
              isoWeek: {$isoWeek: "$date"},
              isoString: {$dateToString: {format: "%G-W%V-%u", date: "$date"}}
          }
      }])
      

      Output

      {
        _id: 0,
        dayOfWeek: 6,  // 1 is Sunday, 7 is Saturday
        isoDayOfWeek: 5,  // 1 is Monday, 7 is Sunday
        year: 2016,
        isoYear: 2015,  // 2016 starts on Jan 4th under ISO calendar.
        week: 0,
        isoWeek: 53,
        isoString: "2015-W53-5"  // $dateToString is also modified to support
                                 // the concepts above.
      }
      

      Additional Notes

      Original Description

      It would be very useful for $week to have an option to start from Monday. Get it from current locale, is first that came in my mind.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                emily.hall Emily Hall
                Participants:
                Last commenter:
                Kay Kim
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Days since reply:
                  2 years, 2 days ago
                  Date of 1st Reply: