NPM 包 Mongorito-timestamps 使用教程

阅读时长 7 分钟读完

简介

Mongorito-timestamps 是一个基于 Node.js 平台的 MongoDB ORM(对象关系映射)框架,可帮助开发者在 Node.js 环境下便捷地操作 MongoDB 数据库。其中 Mongorito-timestamps 是 Mongorito 项目的一个扩展包,它可以自动为 MongoDB 中的文档增加创建时间和修改时间两个字段。

本篇文章将介绍如何使用 Mongorito-timestamps 包,以及如何在开发过程中充分利用它提供的特性。

安装

在使用 Mongorito-timestamps 之前,需要先安装 Mongorito,安装方式如下:

安装完成后,可以安装 Mongorito-timestamps,安装方式如下:

安装完成后,就可以在项目代码中引入 Mongorito 和 Mongorito-timestamps 的依赖:

使用

自动生成时间戳

使用 Mongorito-timestamps 包后,MongoDB 中的文档将会自动添加 created_atupdated_at 两个字段,并在文档第一次创建时自动赋值为当前时间。

例如,创建一个名为 books 的集合,并添加一条文档,就可以看到 created_atupdated_at 被自动填充了时间戳:

-- -------------------- ---- -------
----- ---- - ------------------------
    ----------- -------
---

------ ---------- -
    -- -- -------
    ----- ---------------------------------------------------------
    -- ----
    ----- ---- - --- ------
        ------ ----- ----------
        ------- ------- --------
        ------ --
    ---
    ----- ------------
    ----------------------------------- ------------------------
-----

输出结果:

自动更新时间戳

当文档被修改时,Mongorito-timestamps 会自动更新 updated_at 字段的值。

例如,更新上面创建的书籍的价格为 60 元后,可以看到 updated_at 字段被自动更新了:

-- -------------------- ---- -------
------ ---------- -
    -- -- -------
    ----- ---------------------------------------------------------
    -- ------
    ----- ---- - ----- ---------------
    -- ------
    ----------------- ----
    ----- ------------
    ----------------------------------- ------------------------
-----

输出结果:

自定义字段名

默认情况下,Mongorito-timestamps 会自动为文档添加 created_atupdated_at 两个字段名。如果需要自定义字段名,可以在 Model 中添加 timestamps 属性,如下所示:

在上面的例子中,文档的创建时间字段名将会被设为 created,修改时间字段名将会被设为 updated

限制自动更新时间戳的条件

有时候,在操作数据库时需要限制部分情况下才自动更新时间戳。例如,当用户修改个人信息时,我们需要更新用户信息,但不希望更新用户的修改时间戳。

Mongorito-timestamps 包提供了一个属性 touchOnUpdate 来控制在哪些情况下不更新时间戳。当 touchOnUpdate 属性的值为 true 时,更新文档任何字段都会自动更新 updated_at 时间戳。当 touchOnUpdate 属性的值为 false 时,仅当更新文档的非时间戳字段时才会自动更新 updated_at 时间戳。

例如,创建一个名为 users 的集合,并添加一条文档:

-- -------------------- ---- -------
----- ---- - ------------------------
    ----------- --------
    ----------- -----  -- ---------
    -------------- -----  -- --------------- ----------
---

------ ---------- -
    -- -- -------
    ----- ---------------------------------------------------------
    -- ----
    ----- ---- - --- ------
        ----- -----
        ---- ---
        ----------- --- ------
    ---
    ----- ------------
    ----------------------------------- ------------------------  -- -----
-----

输出结果:

更新文档的 age 字段后,不会自动更新 updated_at 时间戳:

-- -------------------- ---- -------
------ ---------- -
    -- -- -------
    ----- ---------------------------------------------------------
    -- -------
    ----- ---- - ----- ---------------
    -- ------
    --------------- ----
    ----- ------------
    ----------------------------------- ------------------------  -- -----
-----

输出结果:

总结

Mongorito-timestamps 是一个非常好用的 MongoDB ORM 扩展包,它可以自动为 MongoDB 中的文档增加创建时间和修改时间两个字段。本文介绍了如何安装和使用 Mongorito-timestamps 包,并详细说明了自动生成时间戳、自动更新时间戳、自定义字段名和限制更新时间戳条件的方法,希望对大家学习和开发 Node.js 项目有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055ca081e8991b448da055

纠错
反馈