发布于 2026-01-06 2 阅读
0

在每个资源上引入 $createdAt 和 $updatedAt 属性

在每个资源上引入 $createdAt 和 $updatedAt 属性

Appwrite是一款开源的后端即服务 (BaaS),它通过提供一套 REST API 来满足您的核心后端需求,从而抽象化构建现代应用程序的所有复杂性。Appwrite 可以处理用户身份验证和授权、实时数据库、云函数、Webhook 等等!

在最新的0.15 版本中,我们引入了许多令人兴奋的新功能,其中之一是新增了两个时间戳属性$createdAt$updatedAt🥳。我们将在本文中讨论它们的用途。

👀 最新动态

0.15 版本开始,您应该可以在资源中看到两个新添加的属性。您只需在控制台中点击文档的“以 JSON 格式查看”选项即可查看。导航至“数据库”->“[您的数据库]”->“[您的集合]”->“[任意文档]”,您应该会在右侧看到“以 JSON 格式查看”选项。点击该选项即可显示新添加的属性。

创建于和更新于

顾名思义,` $createdAtcreatedTime` 和 `lastmodableTime` 分别存储资源的创建时间和$updatedAt最后修改时间,两者均以UNIX 时间格式(秒)表示。这些新增属性为开发者提供了更大的灵活性,并简化了某些用例的实现。让我们来看看它们是如何运作的!😎

🧠 使用案例

1) ⚡ 文档排序

其中一个应用场景是能够根据最新/最旧对文档进行排序。这在聊天应用中非常理想。

如果要按最新排序,只需将新添加的属性用作排序参数即可:


import { Databases } from "appwrite";

const databases = new Databases(client, '[DATABASE_ID]'); // client should be Appwrite Client

const documents = await databases.listDocuments(
  '[COLLECTION_ID]',
  undefined,
  undefined,
  undefined,
  undefined,
  undefined,
  ['$createdAt'],
  ['DESC'],
);
Enter fullscreen mode Exit fullscreen mode

这将提取按最新创建时间排序的文档列表。

2) 🕒 显示时间信息

在博客应用中,您可能需要显示博文的发布时间。另一个例子是问答论坛应用,您也可能需要显示内容的最后更新时间。

你可以通过打印来自 Appwrite 的时间戳的日期来实现这一点:


import { Databases } from "appwrite";

const databases = new Databases(client, '[DATABASE_ID]'); // client should be Appwrite Client

const document = await database.getDocument('[COLLECTION_ID]', '[DOCUMENT_ID]');

const created = new Date(document.$createdAt * 1000); // Date class expects milliseconds
const updated = new Date(document.$updatedAt * 1000);

console.log(`Document was created on ${created.toGMTString()}, and last updated on ${updated.toGMTString()}.`);
Enter fullscreen mode Exit fullscreen mode

3) 🤖 查询文档

新增的属性也可以与查询 API 一起使用。如果您只想在应用程序的“最新”$createdAt选项卡下列出最近 7 天内创建的文档,只需在查询中使用以下语句即可:


import { Databases, Query } from "appwrite";

const databases = new Databases(client, '[DATABASE_ID]'); // client should be Appwrite Client

const lastWeekTimestamp = Date.now() - 604800000;

const documents = await databases.listDocuments(
  '[COLLECTION_ID]',
  [ Query.greaterEqual('​​$createdAt', lastWeekTimestamp) ]
);
Enter fullscreen mode Exit fullscreen mode

这将导入最近 7 天内创建的文档。

以上列举了一些属性的基本用途。以前,这些功能只能通过云函数实现,因此实现起来比较复杂。但得益于最新版本🥳,这些用例变得更加容易实现。现在,开发者可以根据自身需求来使用这些属性。一般来说,这些属性可用于审核系统数据、订单数据、查询数据以及显示时间信息。

至此,我们的分享就结束了🤩。如果您有项目想要分享、需要帮助,或者只是想成为 Appwrite 社区的一份子,我非常欢迎您加入 Appwrite 官方Discord 服务器

📚了解更多

您可以利用以下资源了解更多信息并获得帮助:

文章来源:https://dev.to/appwrite/introducing-createdat-and-updatedat-on-each-resource-5pa