diff --git a/source/reference/operator/aggregation/toDate.txt b/source/reference/operator/aggregation/toDate.txt index 6103d5e0aa..f861c503c2 100644 --- a/source/reference/operator/aggregation/toDate.txt +++ b/source/reference/operator/aggregation/toDate.txt @@ -98,11 +98,11 @@ date: The string must be a valid date string, such as: - - "2018-03-03" + - "2018-03-20" - - "2018-03-03T12:00:00Z" + - "2018-03-20T12:00:00Z" - - "2018-03-03T12:00:00+0500" + - "2018-03-20T12:00:00+0500" * - ObjectId @@ -125,7 +125,7 @@ The following table lists some conversion to date examples: - ISODate("2009-09-19T14:53:56Z") * - ``{$toDate: NumberLong("1100000000000")}`` - - ISODate("2004-11-09T11:33:20Z") + - ISODate("2004-11-19T11:33:20Z") * - ``{$toDate: NumberLong("-1100000000000")}`` - ISODate("1935-02-22T12:26:40Z") @@ -133,8 +133,8 @@ The following table lists some conversion to date examples: * - ``{$toDate: ObjectId("5ab9c3da31c2ab715d421285")}`` - ISODate("2018-03-27T04:08:58Z") - * - ``{$toDate: "2018-03-03"}`` - - ISODate("2018-03-03T00:00:00Z") + * - ``{$toDate: "2018-03-20"}`` + - ISODate("2018-03-20T00:00:00Z") * - ``{$toDate: "2018-03-20 11:00:06 +0500"}`` - ISODate("2018-03-20T06:00:06Z") @@ -150,16 +150,15 @@ Create a collection ``orders`` with the following documents: .. code-block:: javascript db.orders.insert( [ - { _id: 1, item: "apple", qty: 5, order_date: new Date("2018-03-10") }, - { _id: 2, item: "pie", qty: 10, order_date: new Date("2018-03-12")}, - { _id: 3, item: "ice cream", qty: 2, price: "4.99", order_date: "2018-03-05" }, - { _id: 4, item: "almonds" , qty: 5, price: 5, order_date: "2018-03-05 +10:00"} + { _id: 1, item: "apple", qty: 5, price: 2, order_date: new Date( "2018-03-20" ) }, + { _id: 2, item: "pie", qty: 10, price: 3, order_date: new Date( "2018-03-22" ) }, + { _id: 3, item: "ice cream", qty: 2, price: 4, order_date: "2018-03-15" }, + { _id: 4, item: "almonds" , qty: 5, price: 7, order_date: "2018-03-15 +10:00" } ] ) The following aggregation operation on the ``orders`` collection converts the ``order_date`` to date before sorting by the date value: - .. code-block:: javascript // Define stage to add convertedDate field with the converted order_date value @@ -179,16 +178,44 @@ converts the ``order_date`` to date before sorting by the date value: db.orders.aggregate( [ dateConversionStage, sortStage - ]) + ] ) The operation returns the following documents: .. code-block:: javascript - { "_id" : 4, "item" : "almonds", "qty" : 5, "price" : 5, "order_date" : "2018-03-05 +10:00", "convertedDate" : ISODate("2018-03-04T14:00:00Z") } - { "_id" : 3, "item" : "ice cream", "qty" : 2, "price" : "4.99", "order_date" : "2018-03-05", "convertedDate" : ISODate("2018-03-05T00:00:00Z") } - { "_id" : 1, "item" : "apple", "qty" : 5, "order_date" : ISODate("2018-03-10T00:00:00Z"), "convertedDate" : ISODate("2018-03-10T00:00:00Z") } - { "_id" : 2, "item" : "pie", "qty" : 10, "order_date" : ISODate("2018-03-12T00:00:00Z"), "convertedDate" : ISODate("2018-03-12T00:00:00Z") } + { + _id: 4, + item: 'almonds', + qty: 5, + price: 7, + order_date: '2018-03-15 +10:00', + convertedDate: ISODate("2018-03-14T14:00:00.000Z") + }, + { + _id: 3, + item: 'ice cream', + qty: 2, + price: 4, + order_date: '2018-03-15', + convertedDate: ISODate("2018-03-15T00:00:00.000Z") + }, + { + _id: 1, + item: 'apple', + qty: 5, + price: 2, + order_date: ISODate("2018-03-20T00:00:00.000Z"), + convertedDate: ISODate("2018-03-20T00:00:00.000Z") + }, + { + _id: 2, + item: 'pie', + qty: 10, + price: 3, + order_date: ISODate("2018-03-22T00:00:00.000Z"), + convertedDate: ISODate("2018-03-22T00:00:00.000Z") + } .. note::