npm 包 fendjs-model-mongo 使用教程

阅读时长 5 分钟读完

简介

fendjs-model-mongo 是一个在 Node.js 中操作 MongoDB 的 ORM 库,基本实现了与 ORM 概念相同的“数据模型、数据关系、数据操作”的三大功能,使用 JavaScript 封装了 MongoDB 数据操作接口,提供了更加统一的访问接口,简化了应用程序的开发流程。

这篇文章将介绍 fendjs-model-mongo 的基本用法和进阶用法。

安装

通过 npm 安装 fendjs-model-mongo:

基础用法

首先,引入 fendjs-model-mongo,连接 MongoDB 数据库:

数据模型

定义一个简单的学生数据模型 Student,表示学生姓名、学号、性别和出生日期:

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

数据操作:增删改查

创建数据

查询数据

更新数据

删除数据

进阶用法

手动映射集合名

将数据模型的 collection 设置为字符串,可以达到手动映射集合名的目的:

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

扩展数据模型

想让 Student 数据模型拥有更多的方法和属性,可以使用 extend 方法来扩展:

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

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

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

定制查询条件

自己定义一些查询条件,便于多处重复使用:

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

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

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

结语

fendjs-model-mongo 功能丰富,使用灵活,这篇文章介绍了其基本用法和进阶用法,适合初学者和进阶用户。在实际项目中,建议阅读官方文档,加深学习。

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