简介
MongoDB 是一种基于文档的数据库,它使用 JSON 格式存储数据,而不是传统的表格形式。Node.js 是一种 JavaScript 运行环境,它可以在服务器端运行 JavaScript 代码。Mongoose 是一个 Node.js 的 MongoDB 驱动程序,它提供了一种简单而优雅的方式来处理 MongoDB 数据库。
本文将介绍如何使用 Node.js 和 Mongoose 操作 MongoDB 数据库,包括连接数据库、创建集合、插入、查询、更新和删除文档等操作。
安装
要使用 Node.js 和 Mongoose 操作 MongoDB 数据库,我们需要先安装它们。首先安装 Node.js,可以从官网 https://nodejs.org/ 下载对应系统的安装包进行安装。安装完成后,打开终端(Windows 用户打开命令提示符或 PowerShell),输入以下命令安装 Mongoose:
npm install mongoose --save
连接数据库
在使用 Mongoose 操作 MongoDB 数据库之前,我们需要先连接到数据库。可以使用以下代码连接到本地 MongoDB 数据库:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('Could not connect to MongoDB', err));
上面的代码使用了 Mongoose 的 connect
方法连接到本地 MongoDB 数据库,其中 test
是数据库的名称。如果连接成功,将打印出 Connected to MongoDB
,否则将打印出错误信息。
创建集合
在 MongoDB 中,集合(Collection)是一组文档(Document)的容器。可以使用 Mongoose 的 Schema
和 Model
来定义和操作集合。
以下是一个简单的例子,定义了一个 User
集合:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ---------- - --- ----------------- ----- ------- ------ ------- ---- ------ --- ----- ---- - ---------------------- ------------ -------------- - -----
上面的代码定义了一个 User
集合,其中包含 name
、email
和 age
三个字段。mongoose.Schema
方法用于定义数据结构,mongoose.model
方法用于创建集合模型。
插入文档
要向集合中插入文档(Document),可以使用集合模型的 create
方法。以下是一个简单的例子,向 User
集合中插入一条文档:
-- -------------------- ---- ------- ----- ---- - ------------------ ----- ---- - --- ------ ----- -------- ------ -------------------- ---- -- --- ----------- -------- -- ----------------- -------- ---------- -- --------------------
上面的代码创建了一个 User
对象,然后调用 save
方法将其保存到数据库中。
查询文档
要查询集合中的文档,可以使用集合模型的 find
方法。以下是一个简单的例子,查询 User
集合中所有的文档:
const User = require('./user'); User.find() .then(users => console.log(users)) .catch(err => console.error(err));
上面的代码使用 User.find()
方法查询 User
集合中所有的文档。查询结果将以数组的形式返回,每个元素都是一个文档对象。
如果要查询特定条件的文档,可以在 find
方法中传入查询条件。以下是一个例子,查询 User
集合中年龄大于等于 18 岁的文档:
const User = require('./user'); User.find({ age: { $gte: 18 } }) .then(users => console.log(users)) .catch(err => console.error(err));
上面的代码使用查询条件 { age: { $gte: 18 } }
查询 User
集合中年龄大于等于 18 岁的文档。
更新文档
要更新集合中的文档,可以使用集合模型的 updateOne
或 updateMany
方法。以下是一个简单的例子,更新 User
集合中 Alice
的年龄为 26 岁:
const User = require('./user'); User.updateOne({ name: 'Alice' }, { age: 26 }) .then(result => console.log(result)) .catch(err => console.error(err));
上面的代码使用 User.updateOne()
方法更新 User
集合中 Alice
的年龄为 26 岁。如果更新成功,将返回 { n: 1, nModified: 1, ok: 1 }
,其中 n
表示匹配的文档数量,nModified
表示更新的文档数量,ok
表示操作是否成功。
删除文档
要删除集合中的文档,可以使用集合模型的 deleteOne
或 deleteMany
方法。以下是一个简单的例子,删除 User
集合中年龄小于 18 岁的文档:
const User = require('./user'); User.deleteMany({ age: { $lt: 18 } }) .then(result => console.log(result)) .catch(err => console.error(err));
上面的代码使用 User.deleteMany()
方法删除 User
集合中年龄小于 18 岁的文档。如果删除成功,将返回 { n: 2, ok: 1 }
,其中 n
表示删除的文档数量,ok
表示操作是否成功。
结论
本文介绍了如何使用 Node.js 和 Mongoose 操作 MongoDB 数据库,包括连接数据库、创建集合、插入、查询、更新和删除文档等操作。以上只是一些简单的例子,Mongoose 还提供了很多高级的操作,如聚合、索引、中间件等。如果想深入学习,可以参考官方文档 https://mongoosejs.com/docs/。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6741af7aed0ec550d722e72e