Mongoose 与 Express 的集成使用技巧介绍

阅读时长 7 分钟读完

简介

Mongoose 是一个 Node.js 的 MongoDB 驱动程序,通过它,我们可以使用 JavaScript 的方式来操作 MongoDB 数据库,它的集成使用与 Express 相辅相成,能够在前端项目中快速进行数据存储、查询以及更新等操作。本文将会介绍 Mongoose 与 Express 的集成使用技巧,包括 Mongoose 的安装、连接以及 CURD 操作。

安装和连接 Mongoose

Mongoose 的安装非常简便,在本地项目中通过 npm 命令即可安装:

在连接 MongoDB 数据库之前,我们需要先确认本地是否安装了 MongoDB,若未安装,需要前往 MongoDB 官网进行下载安装,接着我们可以通过下面的代码连接本地 MongoDB 数据库:

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

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

以上代码将会连接本地的 MongoDB ,并且返回一个 Promise 对象,当连接成功时,输出 Connect MongoDB success!,否则输出 Connect MongoDB failed!。其中,useNewUrlParser、useUnifiedTopology、useCreateIndex 及 useFindAndModify 都是为了规避 Mongoose 版本更新时可能出现的一些问题。

Model 和 Schema 的创建

一般情况下,我们在前端项目中需要定义多个 Model 和 Schema,并将其注册到全局,以便在整个项目中使用,下面是一个模块创建 Model 和 Schema 的示例代码:

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

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

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

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

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

在以上代码中,我们首先导入 Mongoose 模块,随后定义了一个 UserSchema,它包含了三个字段:name、age 和 sex, 其中 name 和 age 为必填字段,而 sex 字段则默认为 Male。 接着,我们将 UserSchema 通过 mongoose.model 函数创建成一个 Model,并设置其在数据库中的名称为 user,最后通过 exports 将 UserModel 和 UserSchema 导出给其他文件使用。

CURD 操作实现

在 Model 和 Schema 创建完成之后,我们就可以对数据库进行 CURD 操作了,下面将详细介绍每一项的使用方法。

添加数据

添加数据的方法非常简单,只需要使用 Model 的 create 函数即可,例如:

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

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

以上代码表示创建一个新用户 Lily,并将其添加到数据库中,当添加成功时输出 Create user: [object],否则输出 Create user failed。

查询数据

查询数据分为两种情况:一种是查询全部数据,另一种是根据条件查询数据。

查询全部数据

查询全部数据可以使用 Model 的 find 函数,例如:

以上代码表示查询数据库中的全部用户数据,并将其返回到 docs 中,当查询成功时输出 All users: [object,Object],否则输出 Query users failed。

根据条件查询数据

根据条件查询数据需要使用 Model 的 find 函数,并在 find 函数中传入一个查询条件对象。例如,我们要查询年龄小于 18 岁的所有用户:

以上代码表示查询数据库中年龄小于 18 岁的所有用户,并将其返回到 docs 中,当查询成功时输出 All users under 18: [object, Object],否则输出 Query users failed。

更新数据

更新数据需要使用 Model 的 update 或 updateOne 或 updateMany 函数,在其中传入一个更新条件和一个更新值对象。例如,我们要将年龄小于 18 岁的所有用户的性别改成 Female:

以上代码表示更新数据库中年龄小于 18 岁的所有用户,将其性别字段改为 Female,当更新成功时输出 Update users success!,否则输出 Update users failed。

删除数据

删除数据同样需要使用 Model 的 remove 或 deleteOne 或 deleteMany 函数,在其中传入一个删除条件对象。例如,我们要删除所有年龄小于 18 岁的用户数据:

以上代码表示删除数据库中年龄小于 18 岁的所有用户数据,当删除成功时输出 Delete users success!,否则输出 Delete users failed。

结论

本文介绍了 Mongoose 与 Express 的集成使用技巧,包括 Mongoose 的安装、连接以及 CURD 操作。希望读者们通过本文的学习,能够对 Mongoose 与 Express 的集成使用有更加深入的了解,并能够在项目中更加方便快捷地进行数据库操作。

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

纠错
反馈