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

数据库操作

在业务比较复杂的情况下,整个项目应该有一个合理的分层数据流程:

  1. 引入依赖库 -> 连接数据库
  2. 定义模型model(最好写在model目录下)
  3. 一系列业务逻辑 -> 生成实体对象 -> 一系列业务逻辑(最好写在controller下)-> 对数据库进行curd
  4. 定义路由 -> 访问控制器(最好写在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

模拟测试

  1. 启动服务:
node http.js
  1. 浏览器访问:localhost:8000
  2. node控制台查看执行结果(有数据返回说明插入成功):
{ _id: 5b3b2e074452fb32a448eda7, name: ‘Zildjian‘, __v: 0 }
  1. 登陆数据库查看数据(本例以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

原文地址:https://www.cnblogs.com/shenshangzz/p/9973429.html

时间: 2024-08-30 05:47:44

Koa2学习(九)与mongoDB交互的相关文章

mongo db 学习笔记 之一: mongodb 初认识

官网文章,对比SQL和mongodb http://docs.mongodb.org/manual/reference/sql-comparison/ db --显示当前使用的库 show dbs --显示所有库 use db show collections --显示当前数据库的所有表 db.testData.find() --选择要操作的数据库之后,db代表当前数据库对象,testData代表数据表,在mongo里table叫作collection. find()函数返回所有记录(recor

Oracle学习(九):创建和管理表

1.知识点:可以对照下面的录屏进行阅读 SQL> --创建表 SQL> create table test1 2 (tid number, 3 tname varchar2(20), 4 hidatedate date default sysdate); SQL> --使用as和子查询快速建表 SQL> --创建表:包含员工号 姓名 月薪 年薪 部门名称 SQL> create table empincome 2 as 3 select empno,ename,sal,sal

MongoDB入门学习(三):MongoDB的增删查改

对于我们这种菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改. 因为MongoDB存储数据都是以文档的模式,所以在操作它的数据时,也是以文档为单位的.那么我们实现增删查改也是以文档为基础,不知道文档是什么的同学可以看看上篇介绍的基本概念. 1.插入文档 向MongoDB集合中插入文档的基本方法是insert: 单个插入 > document = {key : value} > db.collecti

MongoDB入门学习(四):MongoDB的索引

上一篇讲到了MongoDB的基本操作增删查改,对于查询来说,必须按照我们的查询要求去集合中,并将查找到的结果返回,在这个过程中其实是对整个集合中每个文档进行了扫描,如果满足我们的要求就添加到结果集中最后返回.对于小集合来说,这个过程没什么,但是集合中数据很大的时候,进行表扫描是一个非常恐怖的事情,于是有了索引一说,索引是用来加速查询的,相当于书籍的目录,有了目录可以很精准的定位要查找内容的位置,从而减少无谓的查找. 1.索引的类型 创建索引可以是在单个字段上,也可以是在多个字段上,这个根据自己的

MongoDB入门学习(二):MongoDB的基本概念和数据类型

上一篇讲了MongoDB的安装和管理,其中涉及到了一些概念,数据结构还有一些API的调用,不知道的没关系,其实很简单,这篇会简单介绍一下. 1.文档 文档是MongoDB的核心概念,多个键值对有序的放在一起就是一个文档,文档是MongoDB存储数据最基本的数据结构.对MongoDB都是以文档的形式来操作的,使用了一种类似JSON的二进制BSON数据格式,对API的调用都是传的文档参数.每种编程语言都有标示文档的数据结构,比如java的map,lua的table,python的dict等等,但是都

Mongodb学习笔记一(Mongodb环境配置)

mongodb学习 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0;

#学习笔记#JSP数据交互

#学习笔记#JSP数据交互 数据库的使用方式: 当用户在第一个页面的查询框输入查询语句点提交的时候我们是用什么样的方式完成这个查询的? 答:我们通过在第一个页面提交表单的形式,真正的数据库查询时在第二个服务器页面进行的,第一个request对象里面放置了查询的内容,我们可以通过request.getParameter()方法获得,在服务器内我们之间把所有的查询直接用html语句输出是很困难的,所以我们把查询的结果赋给request的Attribute,使用request.sex`x`x``tAt

Koa2学习(五)中间件

Koa2学习(五)中间件 Koa2通过app.use(function)方法来注册中间件. 所有的http请求都会依次调用app.use()方法,所以中间件的使用顺序非常重要. 中间件的执行顺序 官方说明: 假设依次有 A.B 两个中间件,首先请求流通过 A 中间件,然后继续移交控制给 B 中间件.当一个中间件调用 next() 则该函数暂停并将控制传递给定义的下一个中间件.当在下游没有更多的中间件执行后,堆栈将展开并且每个中间件恢复执行其上游行为. 我们来做个简单的测试,写三个中间件来测试执行

Koa2学习(一)环境搭建

Koa2学习(一)环境搭建 koa2脚手架 koa2服务安装 koa2-generator目录结构 什么是 Koa2 koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架. 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率.koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手. 检查版本 在node版本大于v7