前言
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 }
,例如:
User.update({ name: 'Tom' }, { age: 22 }, { multi: true }, (err) => { // ... });
查操作
在 Mongoose 中,查询操作比较复杂,需要用到多个函数。下面是一些常见的查操作:
查询所有数据
-- -------------------- ---- ------- ----- ---- - ------------------------- --------------- ------ -- - -- ----- - ----------------- - ---- - ------------------- - ---
上述代码中,我们使用了 find
函数来查询所有用户数据。函数的异步回调函数的第二个参数 users
是一个数组,表示查询得到的所有数据。
查询指定数据
-- -------------------- ---- ------- ----- ---- - ------------------------- -------------- ----- ----- -- ----- ----- -- - -- ----- - ----------------- - ---- - ------------------ - ---
上述代码中,我们使用了 findOne
函数来查询名为 'Tom' 的用户数据。函数的异步回调函数的第二个参数 user
则代表查询得到的数据对象。需要注意的是,如果查询不到对应数据,则 user
将会是 null。
查询数据数量
-- -------------------- ---- ------- ----- ---- - ------------------------- ---------------- ------ -- - -- ----- - ----------------- - ---- - ------------------- - ---
上述代码中,我们使用了 count
函数来查询用户总数。函数的异步回调函数的第二个参数 count
则代表用户总数。
总结
本篇文章介绍了 Mongoose 中的增删改查查询操作。其中,涵盖了数据模型的定义、增删改查操作的使用等多个方面,并针对每个操作都提供了示例代码。希望读者可以通过这篇文章,更好地掌握在 Node.js 中使用 Mongoose 来进行 MongoDB 数据库操作的技巧。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647950fa968c7c53b0557f0a