MongoDB 如何从 Mongoose 的 ObjectID 中获取创建日期

MongoDB 如何从 Mongoose 的 ObjectID 中获取创建日期

在本文中,我们将介绍如何通过 Mongoose 的 ObjectID 获取 MongoDB 数据库文档的创建日期。

阅读更多:MongoDB 教程

介绍

在使用 MongoDB 数据库时,每个文档都会分配一个唯一的 ObjectID。ObjectID 是一个由 MongoDB 自动生成的 12 字节的唯一标识符,其中包含了该文档的创建时间戳信息。

Mongoose 是一个在 Node.js 环境下操作 MongoDB 的对象建模工具。它提供了一种简单而优雅的方式来定义和操作 MongoDB 数据模型。通过使用 Mongoose,我们可以轻松地从 ObjectID 中获取文档的创建日期。

示例

首先,我们需要安装并导入 mongoose 模块:

const mongoose = require('mongoose');
JavaScript

接下来,连接到 MongoDB 数据库:

mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => console.log('Connected to MongoDB'))
  .catch(err => console.error('Failed to connect to MongoDB', err));
JavaScript

现在,我们可以定义一个 Mongoose 模型来表示我们的数据模型。假设我们有一个名为 User 的集合,其中包含了用户的姓名和创建日期:

const userSchema = new mongoose.Schema({
  name: String,
}, { timestamps: true });

const User = mongoose.model('User', userSchema);
JavaScript

在上述代码中,我们使用 timestamps 选项来启用 Mongoose 的自动时间戳功能。这会在每个文档中自动添加 createdAtupdatedAt 字段,并将它们设置为文档的创建日期和更新日期。

现在,我们可以创建一个新的用户文档并保存到数据库中:

const newUser = new User({ name: 'John' });

newUser.save()
  .then(() => console.log('User created'))
  .catch(err => console.error('Failed to create user', err));
JavaScript

在保存成功后,我们可以通过访问文档的 createdAt 字段来获取文档的创建日期:

console.log(newUser.createdAt);
JavaScript

输出的结果将类似于以下内容:

2022-01-01T12:34:56.789Z
SQL

这是一个 ISO 8601 格式的日期字符串,表示了文档的创建日期和时间。

另外,如果你想在 Mongoose 查询中获取文档的创建日期,可以通过使用 .select 方法来指定需要返回的字段:

User.findById(userId).select('createdAt')
  .exec()
  .then(user => console.log(user.createdAt))
  .catch(err => console.error('Failed to get user', err));
JavaScript

上述代码中的 userId 是一个已知的文档 ID。

总结

通过使用 Mongoose 的 ObjectID 和自动时间戳功能,我们可以轻松地从文档中获取创建日期。首先,我们需要在数据模型中启用自动时间戳功能;然后,通过访问文档的 createdAt 字段或使用 .select 方法来获取日期。这样,我们就可以方便地了解文档的创建时间,并在需要的时候进行处理和分析。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册