Mongoose 是一个 MongoDB 对象模型工具,它提供了对 MongoDB 数据库进行 CRUD 操作的接口。在 Node.js 开发环境中,使用 Mongoose 可以更加方便地进行数据库的操作。本文将介绍 Mongoose 中文 API 文档,帮助读者更好地了解 Mongoose 的各种接口以及如何使用它们。
安装
首先,需要在项目中安装 Mongoose。可以使用 npm 或者 yarn 进行安装:
npm install mongoose
如果使用 yarn,可以运行以下命令进行安装:
yarn add mongoose
安装完成后,就可以在项目的代码中引入 Mongoose 了。
const mongoose = require('mongoose');
连接数据库
在使用 Mongoose 进行数据库操作之前,需要先连接数据库。可以使用 mongoose.connect()
方法连接数据库。
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false, useCreateIndex: true });
以上代码中,mongoose.connect()
方法接受两个参数:第一个参数为数据库的链接地址,第二个参数为选项。选项可以控制 Mongoose 的一些行为。
其中,useNewUrlParser
选项用于向 MongoDB 连接请求中添加 useNewUrlParser 字段,用以确保 Mongoose 在连接时不会使用旧的解析器。useUnifiedTopology
选项使用新的 MongoDB 驱动程序引入的 topology engine 以使用 MongoDB Server Discovery 和 Monitoring Engine,并取消了建议选择复制集连接的警告。useFindAndModify
选项将使用 MongoDB 自己的 findAndModify,而不是 Mongoose 的 findOneAndUpdate 等操作,以避免 DeprecationWarning 信息。useCreateIndex
选项将 MongoDB 和 Mongoose 中使用的 ensureIndex()
函数替换为 createIndex()
。
创建 MongoDB Schema
在 Mongoose 中,可以使用 mongoose.Schema
方法创建 MongoDB 的 Schema。Schema 是一种用于定义 MongoDB 中文档结构的方式。
以下是一个简单的例子:
const mongoose = require('mongoose'); const Schema = mongoose.Schema; const userSchema = new Schema({ name: String, password: String, email: String });
上面的代码中,userSchema
描述了一个用户文档的结构,包含了三个字段:name
、password
和 email
。这些字段的数据类型都是字符串。
创建 Model
一旦有了 Schema,就可以使用 Mongoose 的 mongoose.model()
方法创建 Model。
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------ - ---------------- ----- ---------- - --- -------- ----- ------- --------- ------- ------ ------ --- ----- ---- - ---------------------- ------------
上面的代码中,使用 mongoose.model()
方法创建了一个名为 User
的 Model。User
的 Schema 是 userSchema
。这时,User
就可以用来对数据库进行 CRUD 操作了。
创建文档
一旦有了 Model,就可以使用它来创建文档了。可以使用 new
操作符创建一个新的文档,然后使用 save()
方法将文档保存到数据库中。
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------ - ---------------- ----- ---------- - --- -------- ----- ------- --------- ------- ------ ------ --- ----- ---- - ---------------------- ------------ ----- ---- - --- ------ ----- ------- --------- --------- ------ ------------------ --- ----------------- ----- -- - -- ------- - ------------------- - ---- - ------------------ - ---
上面的代码中,user
是一个新的文档对象,它的属性值对应了 userSchema
中定义的字段。通过调用 save()
方法,将文档保存到数据库中。save()
方法接受一个回调函数,当文档保存成功时,回调函数将被调用并传递保存的用户数据。
查询文档
在 Mongoose 中,可以使用 find()
方法查询数据库中符合条件的文档。
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------ - ---------------- ----- ---------- - --- -------- ----- ------- --------- ------- ------ ------ --- ----- ---- - ---------------------- ------------ ----------- ----- ------ -- ------- ------ -- - -- ------- - ------------------- - ---- - ------------------- - ---
上面的代码中,User.find()
方法接受一个查询条件 { name: 'John' }
,并在数据库中查找所有 name
字段等于 'John'
的文档。find()
方法的回调函数将在查询完成时被调用。
更新文档
使用 Mongoose 可以很方便地更新一个文档。可以使用 updateOne()
方法更新单个文档,或者使用 updateMany()
方法更新多个文档。
以下是一个更新单个文档的例子:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------ - ---------------- ----- ---------- - --- -------- ----- ------- --------- ------- ------ ------ --- ----- ---- - ---------------------- ------------ ---------------- ----- ------ -- - ------ ----------------- -- ------- ------- -- - -- ------- - ------------------- - ---- - -------------------- - ---
上面的代码中,User.updateOne()
方法接受两个参数:第一个参数为更新条件 { name: 'John' }
,第二个参数为更新值 { email: 'new@example.com' }
。这将在数据库中查找 name
等于 'John'
的文档,并将它的 email
更新为 'new@example.com'
。
删除文档
使用 Mongoose 可以很方便地删除文档。可以使用 deleteOne()
方法删除单个文档,或者使用 deleteMany()
方法删除多个文档。
以下是一个删除单个文档的例子:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------ - ---------------- ----- ---------- - --- -------- ----- ------- --------- ------- ------ ------ --- ----- ---- - ---------------------- ------------ ---------------- ----- ------ -- ------- ------- -- - -- ------- - ------------------- - ---- - -------------------- - ---
上面的代码中,User.deleteOne()
方法接受一个参数 { name: 'John' }
,这将在数据库中查找 name
等于 'John'
的文档并删除它。
总结
Mongoose 是一个 MongoDB 对象模型工具,它提供了对 MongoDB 数据库进行 CRUD 操作的接口。在 Node.js 开发环境中,使用 Mongoose 可以更加方便地进行数据库的操作。本文介绍了 Mongoose 中文 API 文档,包括了连接数据库、创建 MongoDB Schema、创建 Model、创建文档、查询文档、更新文档和删除文档等方面的内容。希望本文能够帮助读者更好地了解 Mongoose 的各种接口以及如何使用它们。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e1776df6b2d6eab3ca253f