Mongoose 中的增删改查查询详解

阅读时长 6 分钟读完

前言

Mongoose 是 MongoDB 的一种 Node.js 的 ORM 工具,它可以帮助我们更方便地在 Node.js 项目中操作 MongoDB 数据库。而在使用 Mongoose 进行增删改查查询操作时,我们需要掌握一定的知识。

本篇文章将介绍 Mongoose 中的增删改查查询的详细内容,包括模型定义、增删改查操作等方面的内容。同时,本文也将提供示例代码进行解释,帮助读者更好地理解这些操作。

模型定义

在进行增删改查操作之前,必须要先定义数据模型。使用 Mongoose,我们可以通过 Schema 来定义数据模型,例如:

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

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

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

上述代码定义了一个 User 数据模型,包括了 name、age 跟 email 三个字段。其中,name 和 email 字段是 String 类型,而 age 字段是 Number 类型。这个模型需要通过 mongoose.model 函数来创建并导出,参数中的第一个参数表示集合的名称,而第二个参数则是定义好的 Schema。

增操作

在 Mongoose 中,使用 create 函数来进行增操作,例如:

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

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

上述代码中,我们使用了 create 函数来创建了一个新的用户。通过传递一个对象作为参数,其中对象中的属性名对应的就是我们在数据模型中定义的字段名,而属性值则是要新增的数据。异步回调函数返回的 user 则代表创建成功的用户数据。

删操作

在 Mongoose 中,使用 remove 函数来进行删操作,例如:

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

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

上述代码中,我们使用了 remove 函数来删除了名为 'Tom' 的用户。其中,函数的第一个参数是一个对象,代表要匹配的条件。在这个例子中,我们通过 { name: 'Tom' } 表示只匹配 name 字段等于 'Tom' 的数据,其他数据不删除。如果要删除所有数据,则传递一个空的对象 {} 即可。

改操作

在 Mongoose 中,使用 update 函数来进行改操作,例如:

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

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

上述代码中,我们使用了 update 函数来将名为 'Tom' 的用户的年龄修改为 21。其中,函数的第一个参数是一个对象,代表要匹配的条件;第二个参数是要修改的数据,可以包含要添加或修改的字段。在这个例子中,我们只修改了 age 字段。

需要注意的是,update 函数默认只会修改匹配到的第一条数据。如果需要修改所有数据,则必须传递一个可选的参数 { multi: true },例如:

查操作

在 Mongoose 中,查询操作比较复杂,需要用到多个函数。下面是一些常见的查操作:

查询所有数据

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

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

上述代码中,我们使用了 find 函数来查询所有用户数据。函数的异步回调函数的第二个参数 users 是一个数组,表示查询得到的所有数据。

查询指定数据

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

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

上述代码中,我们使用了 findOne 函数来查询名为 'Tom' 的用户数据。函数的异步回调函数的第二个参数 user 则代表查询得到的数据对象。需要注意的是,如果查询不到对应数据,则 user 将会是 null。

查询数据数量

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

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

上述代码中,我们使用了 count 函数来查询用户总数。函数的异步回调函数的第二个参数 count 则代表用户总数。

总结

本篇文章介绍了 Mongoose 中的增删改查查询操作。其中,涵盖了数据模型的定义、增删改查操作的使用等多个方面,并针对每个操作都提供了示例代码。希望读者可以通过这篇文章,更好地掌握在 Node.js 中使用 Mongoose 来进行 MongoDB 数据库操作的技巧。

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

纠错
反馈