简介
Mongoose 是一个优秀的 MongoDB ODM(Object Document Mapping)库,它可以让我们以面向对象的方式操作 MongoDB 数据库,并且提供了许多便捷的 API。
在 Node.js 项目中,我们常常需要连接 MongoDB 数据库,并对其中的数据进行增删改查等操作,本文将介绍如何使用 Mongoose 来操作 MongoDB。
连接 MongoDB
在开始操作 MongoDB 数据库之前,我们需要使用 Mongoose 连接到 MongoDB。首先,在项目中安装 mongoose:npm install mongoose --save
,然后在代码中引入 mongoose,并使用 mongoose.connect()
方法连接 MongoDB:
// javascriptcn.com 代码示例 const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/myDatabase', { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false, }); const db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function() { console.log('Database connected!'); });
在上面的代码中,连接的 URL 为 mongodb://localhost:27017/myDatabase
,其中 myDatabase
是数据库名称,27017 是 MongoDB 默认使用的端口号。useNewUrlParser
、useUnifiedTopology
、useCreateIndex
和 useFindAndModify
这四个参数是必须的,否则会有警告提示。
定义 Schema 和 Model
在 Mongoose 中,Schema 定义了文档的结构和属性,而 Model 则是对应 MongoDB 中的集合,在其中定义操作数据库的方法。
以下是一个简单的例子,定义了一个名为 Person
的集合,包含两个字段:name
和 age
:
const personSchema = new mongoose.Schema({ name: String, age: Number, }); const Person = mongoose.model('Person', personSchema);
插入数据
插入数据使用 Model 的 create()
方法,其参数为一个对象,包含需要插入的数据:
// javascriptcn.com 代码示例 const person1 = new Person({ name: '张三', age: 23, }); Person.create(person1, function(err, person) { if (err) { console.log(err); } else { console.log(`插入了 ${person.name} 的数据`); } });
查询数据
查询数据使用 Model 的 find()
方法,其参数为一个条件对象,包含需要查询的数据:
Person.find({ name: '张三' }, function(err, persons) { if (err) { console.log(err); } else { console.log(`查询到 ${persons.length} 条数据`); console.log(persons); } });
更新数据
更新数据使用 Model 的 updateOne()
方法或 updateMany()
方法,其第一个参数为条件对象,第二个参数为需要更新的数据:
Person.updateOne({ name: '张三' }, { age: 25 }, function(err, result) { if (err) { console.log(err); } else { console.log(`更新了 ${result.nModified} 条数据`); } });
删除数据
删除数据使用 Model 的 deleteOne()
方法或 deleteMany()
方法,其参数为一个条件对象,表示需要删除的数据:
Person.deleteOne({ name: '张三' }, function(err, result) { if (err) { console.log(err); } else { console.log(`删除了 ${result.deletedCount} 条数据`); } });
结束连接
操作数据后,记得使用 mongoose.connection.close()
方法关闭数据库连接。
mongoose.connection.close(function() { console.log('Database connection closed'); });
总结
通过本文,我们了解了在 Node.js 中使用 Mongoose 连接、查询、插入、更新、删除 MongoDB 的操作方法。使用 Mongoose 可以让我们更方便地操作 MongoDB 数据库,在实际开发中也更易于维护和扩展。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655ca791d2f5e1655d6da783