在 MongoDB 中使用 ISODate 进行日期查询
这篇 MongoDB 教学文章将解释 Date()
方法。 本文介绍了使用日期查询的不同方法。
MongoDB 中的 Date() 方法
Date()
方法将日期作为字符串或 Date 对象返回。
- 在 MongoDB shell 或 mongosh 中, Date() 方法以字符串形式返回当前日期。
- 新的 Date() 函数返回一个包含当前日期的 Date 对象。 ISODate 帮助程序由 mongosh 包裹在 Date 对象周围,ISODate 以 UTC(世界标准时间)为单位。
您可以使用新的 Date()
函数或 ISODate()
方法来定义特定日期,方法是提供一个年份介于“0”和“9999”之间的 ISO-8601 日期字符串。 这些函数接受以下格式。
- 带有提供日期的 ISODate 由 new Date("") 返回。
- new Date("") 指定客户端本地时区的 DateTime,并返回一个 ISODate 和 UTC 中的 DateTime。
- new Date("") 采用 UTC 格式的 DateTime,并返回具有 UTC 格式的 DateTime 的 ISODate。
- new Date(integer>) 返回一个 ISODate 实例,其中 DateTime 指定自 UNIX 纪元(1970 年 1 月 1 日)以来的毫秒数。
Date() 方法的行为
日期对象在内部保存为一个带符号的 64 位整数,表示自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数。 并非所有数据库过程和驱动程序都支持完整的 64 位范围。
年份在 0 到 9999 之间的日期可以安全处理。
在 MongoDB 的查询中使用 Date() 方法
如果产品集合中不存在 _id
等于 1 的文档,则以下代码添加一个文档,并将字段 dateAdded 设置为当前日期。
代码:
db.products.updateOne(
{ _id: 1 },
{
$set: { item: "apple" },
$setOnInsert: { dateAdded: new Date() }
},
{ upsert: true }
)
使用 Date()
方法将日期作为字符串返回,如以下示例所示:
var myDateString = Date();
mongosh 使用 ISODate 帮助程序包装 Date 类型的对象。 但是,对象仍然是 Date 类型。
以下示例使用 new Date()
返回具有指定 UTC 日期时间的 Date 对象。
var myDate = new Date("2016-05-18T16:00:00Z");
在 MongoDB 中按日期排序
使用 MongoDB 中的 sort() 函数和 $sort 聚合解决了这个问题。 您可以使用此工具按升序或降序对数据进行排序。
代码示例:
db.posts.find().pretty()
{
"_id" : 1,
"title" : "MongoDB",
"body" : "Hi there",
"date" : "2021-01-01T00:00:00.000Z",
"Country" : "United Kingdom"
}
{
"_id" : 2,
"title" : "MySQL",
"body" : "Hello",
"date" : ISODate("2020-01-01T00:00:00Z"),
"Country" : "United States of America"
}
{
"_id" : 3,
"title" : "SQL",
"body" : "World",
"date" : ISODate("2021-01-01T00:00:00Z"),
"Country" : "New Zealand"
}
一些数据被添加到 posts 集合中,日期字段用于将它们按升序排列,较早的日期在前。
代码示例:
db.posts.find().sort({ date: 1 }).pretty()
{
"_id" : 1,
"title" : "MongoDB",
"body" : "Hi there",
"date" : "2021-01-01T00:00:00.000Z",
"Country" : "United Kingdom"
}
{
"_id" : 2,
"title" : "MySQL",
"body" : "Hello",
"date" : ISODate("2020-01-01T00:00:00Z"),
"Country" : "United States of America"
}
{
"_id" : 3,
"title" : "SQL",
"body" : "World",
"date" : ISODate("2021-01-01T00:00:00Z"),
"Country" : "New Zealand"
}
排序后,请注意它,因为第一个文档有一个日期字符串而不是日期对象。
日期字符串最先出现,即使文档 2 中的日期稍后被初始化。
按日期排序在 MongoDB 中不起作用
MongoDB 无法运行的原因可能有多种,但您必须记住一些在 MongoDB 中按日期排序操作的过程。
- 永远记住,在帮助下,您正在将数据存储在集合中。
- 有两种方法可以将日期字段存储在文档中。
- Date() 字符串和 ISODate() 数据类型用于在文档中存储日期。
- 当您使用 sort() 方法对日期字段进行排序时,请检查您使用的是哪种数据类型。
代码示例:
db.document.insertOne({ "productId" : 1001, "productDeliveryDateTime": new Date() });
{
"acknowledged" : true,
"insertedId" : ObjectId("611c9e39e1fdc428cf238802")
}
使用 Date() 字符串添加日期,集合名称是文档。 您可以使用 ISODate() 以相同的方式在文档中插入日期。
在 MongoDB 中使用 ISODate() 查询工作日期
使用 $gte 运算符和 ISODate() 在 MongoDB 中使用 ISODate 进行日期查询。 让我们使用该文档制作一个集合以更好地理解这个概念。
以下是使用文档构造集合的查询。
查询:
> db.dateDemo.insertOne({"StudentName":"John","StudentAge":26,"AdmissionDate":new ISODate("2013-06-07")});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8a65799064dcd4a68b70ea")
}
find()
函数可以显示集合中的所有文档。
询问:
db.dateDemo.find().pretty();
输出:
这是在 MongoDB 中使用 ISODate() 的日期查询。
查询:
> db.dateDemo.find({"AdmissionDate":{"$gte": ISODate("2013-06-07T00:00:00Z")}}).pretty();
输出:
相关文章
MongoDB 中的 $unset 运算符
发布时间:2023/05/10 浏览次数:135 分类:MongoDB
-
本文将讨论 $unset 运算符在 MongoDB 中的工作原理。 此外,我们将演示使用此运算符从 MongoDB 集合中的所有文档中删除一个字段。MongoDB 中的 $unset 运算符 $unset 是用于从实体中删除字段的运算符。
MongoDB 中的 $ne 运算符
发布时间:2023/05/10 浏览次数:82 分类:MongoDB
-
本文将讨论 $ne 运算符如何在 MongoDB 中工作。 另外,我们会列举它与$not操作符的区别。MongoDB 中的 $ne 运算符 $ne 是MongoDB中的一个运算符,代表不等于。
MongoDB $Set 运算符
发布时间:2023/05/10 浏览次数:54 分类:MongoDB
-
在本文中,我们将学习如何使用 $set 运算符部分更新 MongoDB 中的对象,以便新对象与现有对象重叠/合并。
MongoDB 中 $push 和 $addToSet 的区别
发布时间:2023/05/10 浏览次数:103 分类:MongoDB
-
这篇指导文章将告诉您什么是 MongoDB 中的运算符以及它们是如何描述的。 此外,对 $push 和 $addToSet 运算符进行了简要的详细说明。 $push 和 $addToSet 之间的区别通过代码段详细说明。
在 MongoDB 中按日期对集合进行排序
发布时间:2023/05/10 浏览次数:150 分类:MongoDB
-
在本 MongoDB 教程中,讨论了在 MongoDB 中对集合进行排序的问题。 简要说明了对数据库中的集合进行排序的不同方法。在 MongoDB 中使用 sort() 函数
统计 MongoDB 中的记录
发布时间:2023/05/10 浏览次数:83 分类:MongoDB
-
本文讨论 MongoDB 中的运算符、聚合运算符以及计算总记录数的不同方法。MongoDB 中的操作 CRUD 操作是用户界面的概念,允许用户浏览、搜索和更改数据库中的对象。
为 MongoDB 集合中的所有文档选择单个或多个字段
发布时间:2023/05/10 浏览次数:99 分类:MongoDB
-
在这篇 MongoDB 教程文章中,您将学习如何通过指定或限制要返回的字段的投影执行基本查询操作,从而为 MongoDB 集合中给定的所有文档选择单个或多个字段。
在 MongoDB 中使用 findOneAndUpdate() 方法
发布时间:2023/05/10 浏览次数:180 分类:MongoDB
-
findOneAndUpdate() 方法更新集合中符合选择条件的第一个匹配文档。 使用此方法,用户可以替换嵌入的文档等。
MongoDB 中的漂亮打印
发布时间:2023/05/10 浏览次数:199 分类:MongoDB
-
本文将讨论如何在 MongoDB 中使用漂亮的打印来显示格式化的结果。MongoDB 中的漂亮打印