在 MongoDB 中返回基于日期的查询
在这篇 MongoDB 教程文章中,指出了基于日期返回查询的问题。此外,详细解释了如何在 MongoDB 中使用日期范围进行查询。
在 MongoDB 中使用日期范围查询
本节将展示如何编写 MongoDB 日期范围查询以基于时间戳获取记录。MongoDB 日期查询的示例包括 MongoDB 日期大于或小于时间或日期等。
语法:
db.collection.find({day:{$gt:ISODate("2020-01-21"),$lt:ISODate("2020-01-24")}})
此查询返回集合中 day
字段大于 2020-01-21
且小于 2020-01-24
的所有文档。
上面显示的说明很容易理解。但是,这些说明之间存在细微差别。
你可以使用 $gte
表示大于或等于
。
gte=greaterthanorequaltoi.e>=
$gt
表示大于
。
gt=greaterthani.e>
$lte
用于小于或等于
。
lte=lessthanorequaltoi.e<=
$lt
表示小于
。
lt=lessthani.e<
以下信息显示了如何在实践中将此语法与具有以下文档的集合数据一起使用:
db.data.insertOne({day:newDate("2022-01-20"),amount:40})db.data.insertOne({day:newDate("2022-01-21"),amount:32})db.data.insertOne({day:newDate("2022-01-22"),amount:19})db.data.insertOne({day:newDate("2022-01-23"),amount:29})db.data.insertOne({day:newDate("2022-01-24"),amount:35})
在 MongoDB 中查找两个日期之间的文档
你可以利用下面给出的查询来查找 day
字段介于两个特定日期之间的所有文档:
db.data.find({day:{$gt:ISODate("2020-01-21"),$lt:ISODate("2020-01-24")}})
输出:
{ _id: ObjectId("618548bc7529c93ea0b41490"),
day: 2020-01-22T00:00:00.000Z,
amount: 19 }
{ _id: ObjectId("618548bc7529c93ea0b41491"),
day: 2020-01-23T00:00:00.000Z,
amount: 29 }
在 MongoDB 中查找特定日期之后的文档
你可以使用下面给出的以下查询来查找 day
字段在特定日期之后的所有文档:
db.data.find({day:{$gt:ISODate("2020-01-22")}})
输出:
{ _id: ObjectId("618548bc7529c93ea0b41491"),
day: 2020-01-23T00:00:00.000Z,
amount: 29 }
{ _id: ObjectId("618548bc7529c93ea0b41492"),
day: 2020-01-24T00:00:00.000Z,
amount: 35 }
在 MongoDB 中查找特定日期之前的文档
你可以使用下面给出的以下查询来查找 day
字段在特定日期之前的所有文档:
db.data.find({day:{$lt:ISODate("2020-01-22")}})
输出:
{ _id: ObjectId("618548bc7529c93ea0b4148e"),
day: 2020-01-20T00:00:00.000Z,
amount: 40 }
{ _id: ObjectId("618548bc7529c93ea0b4148f"),
day: 2020-01-21T00:00:00.000Z,
amount: 32 }
在 MongoDB 中返回基于日期的查询
让我们看一个如何根据日期在 MongoDB 中返回查询的示例。
让我们使用文档创建一个名为 data
的集合,以便更好地掌握概念。以下是构建包含记录的集合的查询:
db.data.insertOne({"PassengerName":"John","PassengerAge":23,"PassengerArrivalTime":newISODate("2018-03-10 14:45:56")});{"acknowledged":true,"insertedId":ObjectId("5c8a57be9064dcd4a68b70e4")}db.data.insertOne({"PassengerName":"Larry","PassengerAge":21,"PassengerArrivalTime":newISODate("2018-05-19 11:10:23")});{"acknowledged":true,"insertedId":ObjectId("5c8a57bf9064dcd4a68b70e5")}db.data.insertOne({"PassengerName":"Mike","PassengerAge":24,"PassengerArrivalTime":newISODate("2018-08-25 16:40:12")});{"acknowledged":true,"insertedId":ObjectId("5c8a57bf9064dcd4a68b70e6")}db.data.insertOne({"PassengerName":"Carol","PassengerAge":26,"PassengerArrivalTime":newISODate("2019-01-29 09:45:10")});{"acknowledged":true,"insertedId":ObjectId("5c8a57bf9064dcd4a68b70e7")}
这将在 find()
方法的帮助下显示集合中的所有文档。对此的查询如下:
db.dataqueryFromDate.find().pretty();
输出:
这是基于日期的返回查询。日期在 2018-05-19T11:10:23Z
之后的记录将显示为,
>db.dataqueryFromDate.find({"PassengerArrivalTime":{$gte:newISODate("2018-05-19T11:10:23Z")}}).pretty();
输出:
结论
通过本文的帮助,你获得了有关使用 Date()
方法的信息。此外,$gte
和 $lte
命令将通过示例进行说明。
根据日期返回查询也用代码片段说明。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。