对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

Date() 和 Datetime(mongosh方法)

Date()

以字符串或日期对象的形式返回日期。 日期可以包含日期和时间,称为日期时间 。

BSON规范 规定 Date对象包含 UTC 日期时间 。UTC 是协调通用时。UTC 日期时间存储一个无符号 64 位整数值,表示 Unix 纪元(一月 1,1970 at 00:00:00 UTC)之后的毫秒数。

可以使用 Date() 查找托管在以下环境中的部署:

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

您可以指定以下任一格式:

  • Date() returns the current date as a string in mongosh.

  • new Date() 以 Date对象返回当前日期。 mongosh 使用 ISODate 助手包装日期对象。 ISODate 采用 UTC 时间。

您可以通过向 new Date() 构造函数或ISODate() 函数传递符合 ISO-8601 的日期字符串来指定特定日期。其中年份范围为 0 到9999 (含边界值)。这些函数接受以下格式:

  • new Date("<YYYY-mm-dd>") 返回具有指定日期的 ISODate。

  • new Date("<YYYY-mm-ddTHH:MM:ss.sss>") 指定客户端本地时区的日期时间,并返回具有 UTC 指定日期时间的 ISODate。ss.sss 指定秒 (ss) 和毫秒 (.sss)。如果省略,毫秒数将被设置为 0。

  • new Date("<YYYY-mm-ddTHH:MM:ss.sssZ>") 指定 UTC 格式的日期时间,并返回具有指定 UTC 格式的日期时间的 ISODate。ss.sss 指定秒 (ss) 和毫秒 (.sss)。如果省略,毫秒数将被设置为 0。

  • new Date(<integer>) 将日期时间指定为自 UNIX 纪元(1970 年 1 月 1 日)以来的毫秒数,并返回生成的 ISODate 实例。

在内部,Date 对象存储为一个带符号的 64 位整数值,表示自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数。

并非所有数据库操作和驱动程序都支持完整的 64 位范围。可以安全地处理年份在 0 至 9999(含)之间的日期。

如果 movies 集合中不存在具有指定 title 的文档,则以下操作将插入一个将字段 dateAdded 设置为当前日期的文档:

db.movies.updateOne(
{ title: "Upsert Demo Film 2099" },
{
$set: { genre: "Drama" },
$setOnInsert: { dateAdded: new Date() }
},
{ upsert: true }
)
{
acknowledged: true,
insertedId: "...",
matchedCount: 0,
modifiedCount: 0,
upsertedCount: 1
}

提示

要以字符串形式返回日期,请使用 Date() 方法。例如:

var myDateString = Date();

mongosh wraps objects of Date type with the ISODate helper. However, the objects are Date types.

以下示例使用 new Date() 返回具有指定 UTC 日期时间的 Date 对象:

var myDate = new Date("2016-05-18T16:00:00Z");

可以将日期指定为 ISODate 对象。

以下示例将包含 ISODate 对象的文档插入到 released 字段中的 sample_mflix 数据库的 movies 集合中:

db.movies.insertMany( [
{ title: "ISODate Demo: Chocolate", released: new ISODate("2020-05-18T14:10:30.123Z") },
{ title: "ISODate Demo: Strawberry", released: new ISODate("2021-03-20T11:30:05.000Z") },
{ title: "ISODate Demo: Vanilla", released: new ISODate("2021-01-15T06:31:15.456Z") }
] )

以下示例将返回其中的 released 日期小于 $lt 操作符中指定的 ISODate 的文档:

db.movies.find(
{ released: { $lt: ISODate("2021-02-25T10:03:46.234Z") },
title: /^ISODate Demo:/ },
{ title: 1, released: 1, _id: 0 }
).sort( { released: 1 } ).toArray()
[
{
title: 'ISODate Demo: Chocolate',
released: ISODate('2020-05-18T14:10:30.123Z')
},
{
title: 'ISODate Demo: Vanilla',
released: ISODate('2021-01-15T06:31:15.456Z')
}
]
给本页内容打分