前言
Koa2 是一个基于 Node.js 平台的下一代 web 开发框架。Mongoose 是一个 MongoDB 的对象模型管理工具,它使用 Node.js 回掉风格的 API 和查询语句。
本文主要介绍如何在 Koa2 中使用 Mongoose 连接 MongoDB。
准备工作
在使用之前,需要先安装以下几个组件:
- Node.js:版本 8.0 以上
- Koa2:可以通过 npm 安装
- Mongoose:可以通过 npm 安装
- MongoDB:可以在官网下载安装
连接 MongoDB
连接 MongoDB 最简单的方式是使用 Mongoose 提供的 connect 方法。该方法返回一个 Promise,可以使用 then 和 catch 方法处理连接成功和失败的情况。
-- -------------------- ---- ------- ----- -------- - ------------------- ----- -- - ------------------- -------------------------------------------- - ---------------- ---- -- -------------- --------------------------- ----------- --------- --------------- ---------- - -- ----- ---------- ---------------------- -- --------- --
在连接成功后,会输出 connected to MongoDB,表示已经成功连接到 MongoDB。
Schema 和 Model
在 Mongoose 中,Schema 指定了数据的结构。Model 是通过 Schema 和 MongoDB 的集合建立的,它们可以用于向集合中添加、查询、更新和删除数据。
定义 Schema
可以使用 mongoose 的 Schema 方法来定义 Schema。
const mongoose = require('mongoose')
const Schema = mongoose.Schema
const productSchema = new Schema({
name: String,
price: Number
})在上面的例子中,productSchema 定义了一个产品对象,拥有 name 和 price 两个属性。
创建 Model
使用 mongoose.model 方法可以将一个 Schema 编译成一个 Model。
-- -------------------- ---- ------- ----- -------- - ------------------- ----- ------ - --------------- ----- ------------- - --- -------- ----- ------- ------ ------ -- ----- ------- - ------------------------- --------------
在上面的例子中,const Product = mongoose.model('Product', productSchema) 定义了一个名为 Product 的 Model。
增删改查
插入数据
使用 new 关键字创建一个 Model 实例,然后使用 save 方法将它保存到 MongoDB 中。
const product = new Product({ name: 'Apple', price: 100 })
product.save(function (err, product) {
if (err) return console.error(err)
console.log('product saved:', product)
})查询数据
查询数据可以使用 find 方法。
Product.find(function (err, products) {
if (err) return console.error(err)
console.log('products:', products)
})在上面的例子中,Product.find 返回一个 Query 对象,该对象具有执行查询的方法,例如 exec, count, distinct, update, remove 等等。在示例中我们使用 exec 方法来执行该查询。
更新数据
使用 update 方法可以对数据进行更新。
Product.update({ name: 'Apple' }, { price: 200 }, function (err, raw) {
if (err) return console.error(err)
console.log('The raw response from Mongo:', raw)
})在上面的例子中,Product.update({ name: 'Apple' }, { price: 200 }) 将 name 为 Apple 的产品 price 修改为 200。
删除数据
使用 remove 方法可以删除数据。
Product.remove({ name: 'Apple' }, function (err, removed) {
if (err) return console.error(err)
console.log('The removed product:', removed)
})在上面的例子中,Product.remove({ name: 'Apple' }) 将 name 为 Apple 的产品从 MongoDB 中删除。
总结
本文主要介绍了在 Koa2 中使用 Mongoose 连接 MongoDB、定义 Schema 和 Model,以及进行增删改查的方法。希望这篇文章对初学者有一定的学习和指导意义。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/6496827a48841e98943ae15a