You can use the following basic syntax to perform a query with a date range in MongoDB: Show db.collection.find({ day: { $gt: ISODate("2020-01-21"), $lt: ISODate("2020-01-24") } }) This particular query will return all documents in the collection where the “day” field is greater than 2020-01-21 and less than 2020-01-24. Note that $gt indicates “greater than” and $lt indicates “less than.” You can also use $gte for “greater than or equal” and $lte for “less than or equal.” The following examples show how to use this syntax in practice with a collection sales with the following documents: db.sales.insertOne({day: new Date("2020-01-20"), amount: 40}) db.sales.insertOne({day: new Date("2020-01-21"), amount: 32}) db.sales.insertOne({day: new Date("2020-01-22"), amount: 19}) db.sales.insertOne({day: new Date("2020-01-23"), amount: 29}) db.sales.insertOne({day: new Date("2020-01-24"), amount: 35}) Example 1: Find Documents Between Two DatesWe can use the following code to find all documents where the “day” field is between two specific dates: db.sales.find({ day: { $gt: ISODate("2020-01-21"), $lt: ISODate("2020-01-24") } }) This query returns the following two documents: { _id: ObjectId("618548bc7529c93ea0b41490"), day: 2020-01-22T00:00:00.000Z, amount: 19 } { _id: ObjectId("618548bc7529c93ea0b41491"), day: 2020-01-23T00:00:00.000Z, amount: 29 } Example 2: Find Documents After Specific DateWe can use the following code to find all documents where the “day” field is after a specific date: db.sales.find({ day: { $gt: ISODate("2020-01-22") } }) This query returns the following two documents: { _id: ObjectId("618548bc7529c93ea0b41491"), day: 2020-01-23T00:00:00.000Z, amount: 29 } { _id: ObjectId("618548bc7529c93ea0b41492"), day: 2020-01-24T00:00:00.000Z, amount: 35 } Example 3: Find Documents Before Specific DateWe can use the following code to find all documents where the “day” field is before a specific date: db.sales.find({ day: { $lt: ISODate("2020-01-22") } }) This query returns the following two documents: { _id: ObjectId("618548bc7529c93ea0b4148e"), day: 2020-01-20T00:00:00.000Z, amount: 40 } { _id: ObjectId("618548bc7529c93ea0b4148f"), day: 2020-01-21T00:00:00.000Z, amount: 32 } Note: You can find the complete documentation for the ISODate() function here. Additional ResourcesThe following tutorials explain how to perform other common queries in MongoDB: MongoDB: How to Query with “Like” Regex The mongo shell provides various methods like ISODate() to return the date, either as a string or as a Date object. ISODate() constructor returns a Date object using the ISODate() wrapper. Let us create a collection with documents − > db.demo548.insertOne({"dueDate":new ISODate("2020-04-09 12:12:40")});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e30499e5f92834d7f05de") } Display all documents from a collection with the help of find() method − > db.demo548.find(); This will produce the following output − { "_id" : ObjectId("5e8e30499e5f92834d7f05de"), "dueDate" : ISODate("2020-04- 09T12:12:40Z") } Following is the query to display, month, day, week, year, etc. from ISODate − > db.demo548.aggregate( [ { $project: { Year: { $year: "$dueDate" }, Month: { $month: "$dueDate" }, Day: { $dayOfMonth: "$dueDate" }, Hour: { $hour: "$dueDate" }, Minutes: { $minute: "$dueDate" }, Seconds: { $second: "$dueDate" }, Milliseconds: { $millisecond: "$dueDate" }, DayOfYear: { $dayOfYear: "$dueDate" }, DayOfWeek: { $dayOfWeek: "$dueDate" }, Week: { $week: "$dueDate" } } } ] ).pretty(); This will produce the following output − { "_id" : ObjectId("5e8e30499e5f92834d7f05de"), "Year" : 2020, "Month" : 4, "Day" : 9, "Hour" : 12, "Minutes" : 12, "Seconds" : 40, "Milliseconds" : 0, "DayOfYear" : 100, "DayOfWeek" : 5, "Week" : 14 }
Updated on 14-May-2020 07:13:56
What is $EXPR in MongoDB?$expr can build query expressions that compare fields from the same document in a $match stage. If the $match stage is part of a $lookup stage, $expr can compare fields using let variables. See Perform Multiple Joins and a Correlated Subquery with $lookup for an example.
What is $project in MongoDB?The $project function in MongoDB passes along the documents with only the specified fields to the next stage in the pipeline. This may be the existing fields from the input documents or newly computed fields.
Is there a date type in MongoDB?The recommended way to store dates in MongoDB is to use the BSON Date data type. The BSON Specification refers to the Date type as the UTC datetime and is a 64-bit integer. It represents the number of milliseconds since the Unix epoch, which was 00:00:00 UTC on 1 January 1970.
What is MongoDB date format?You can specify a particular date by passing an ISO-8601 date string with a year within the inclusive range 0 through 9999 to the new Date() constructor or the ISODate() function. These functions accept the following formats: new Date("<YYYY-mm-dd>") returns the ISODate with the specified date.
|