Koa2学习(九)与mongoDB交互
Koa2学习(九)与mongoDB交互
数据库下载与安装
windows下载地址:http://dl.mongodb.org/dl/win32/x86_64
linux下载地址:https://www.mongodb.com/download-center#community
安装教程略
数据库驱动
node.js要与mongo交互,需要安装mongodb
驱动。
npm i mongodb --save
mongoose
则是node.js中一个非常流行的对mongodb
驱动的封装,内部已经实现了连接池,ORM等功能,对开发人员十分的友好。我们也用mongoose
来学习操作mongoDB
安装mongoose
:
npm i mongoose --save
数据库操作
在业务比较复杂的情况下,整个项目应该有一个合理的分层数据流程:
- 引入依赖库 -> 连接数据库
- 定义模型model(最好写在model目录下)
- 一系列业务逻辑 -> 生成实体对象 -> 一系列业务逻辑(最好写在controller下)-> 对数据库进行curd
- 定义路由 -> 访问控制器(最好写在routes目录下)
现在以一个特别简单的插入操作来学习:
http.js
:
const Koa = require('koa')
const app = new Koa()
const mongoose = require('mongoose')
// 连接数据库:[ip/域名]:[端口号(默认27017)]/[数据库(db)]
mongoose.connect('mongodb://localhost:27017/test')
// 定义模型
const Cat = mongoose.model('Cat', { name: String })
app.use(async () => {
// 实例化一个实体对象
const kitty = new Cat({ name: 'Zildjian' })
// 执行插入操作
const res = await kitty.save()
// 打印返回结果
console.log(res)
})
app.listen(8000)
module.exports = app
模拟测试
- 启动服务:
node http.js
- 浏览器访问:localhost:8000
- node控制台查看执行结果(有数据返回说明插入成功):
{ _id: 5b3b2e074452fb32a448eda7, name: 'Zildjian', __v: 0 }
- 登陆数据库查看数据(本例以mongo命令行工具为例):
use test
# switched to db test
show collections
# cats
db.cats.find()
# { "_id" : ObjectId("5b3b2e074452fb32a448eda7"), "name" : "Zildjian", "__v" : 0 }
可以看到数据已经插入数据库。
更多操作
需要了解更多的数据库操作,请访问mongoose官方文档:
http://mongoosejs.com/docs/queries.html。
飞鸟尽,良弓藏
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构