To convert from String to date data type, you need to write some script. Let us first create a collection with documents
>db.stringToDateDataTypeDemo.insertOne({"CustomerName":"Carol","ShippingDate":"2019- 01-21"}); { "acknowledged" : true, "insertedId" : ObjectId("5ca2071d66324ffac2a7dc60") } >db.stringToDateDataTypeDemo.insertOne({"CustomerName":"Bob","ShippingDate":"2019- 02-24"}); { "acknowledged" : true, "insertedId" : ObjectId("5ca2073566324ffac2a7dc61") } >db.stringToDateDataTypeDemo.insertOne({"CustomerName":"Chris","ShippingDate":"2019- 04-01"}); { "acknowledged" : true, "insertedId" : ObjectId("5ca2074266324ffac2a7dc62") }
Following is the query to display all documents from a collection with the help of find() method
> db.stringToDateDataTypeDemo.find().pretty();
This will produce the following output
{ "_id" : ObjectId("5ca2071d66324ffac2a7dc60"), "CustomerName" : "Carol", "ShippingDate" : "2019-01-21" } { "_id" : ObjectId("5ca2073566324ffac2a7dc61"), "CustomerName" : "Bob", "ShippingDate" : "2019-02-24" } { "_id" : ObjectId("5ca2074266324ffac2a7dc62"), "CustomerName" : "Chris", "ShippingDate" : "2019-04-01" }
Following is the query to convert String to date data type
> db.stringToDateDataTypeDemo.find().forEach(function(data){ ... data.ShippingDate= ISODate(data.ShippingDate); ... db.stringToDateDataTypeDemo.save(data); ... });
Let us display all documents once again to check the string is converted to date data type or not. Following is the query
> db.stringToDateDataTypeDemo.find().pretty();
This will produce the following output
{ "_id" : ObjectId("5ca2071d66324ffac2a7dc60"), "CustomerName" : "Carol", "ShippingDate" : ISODate("2019-01-21T00:00:00Z") } { "_id" : ObjectId("5ca2073566324ffac2a7dc61"), "CustomerName" : "Bob", "ShippingDate" : ISODate("2019-02-24T00:00:00Z") } { "_id" : ObjectId("5ca2074266324ffac2a7dc62"), "CustomerName" : "Chris", "ShippingDate" : ISODate("2019-04-01T00:00:00Z") }