Node.js -- mongoDB 非关系型数据库

补充:

mongoDB默认端口:27017

MySQL默认端口:3306

http:80

https:443

一. 关系型数据库和非关系型数据库

关系型 非关系型
二维表(类似于excel表) json数据
表结构以及字段类型相对固定 比较灵活
MySQL mongoDB
database database
table(表) collection(集合)
row(行) document(文档)
col(列) field(字段)
数据库操作通过sql语句(结构化查询语句) 通过js api去操作

二. 安装mongoDB

搜索3.1.2下载名字最长的安装
百度网盘18302827830Nodejs工具文件夹:mongodb-win32-x86_64-2008plus-ssl-3.1.2-signed.msi
注意点:

在安装的时候会有一个选项complete,custom,选custom


图片.png

启动

(1)在安装好了之后,新建一个浅一点的目录,不要有中文,这个目录是用来存放数据的,d://db

(2)进入mongoDB的安装目录(建议选择默认路径),进入这个目录以后再进入bin目录


图片.png

(3)进入bin目录,在bin目录这里打开命令行工具(git bash、powershell或者cmd)
mongo

图片.png

这个就是测试 出现版本号

然后输入以下命令:

mongod --dbpath d://db

没报错就成功启动。这个窗口不要关!!!
(4)连接使用

可视化工具:robo3t或者navicat for mongodb

老师已发的robo3t:百度网盘18302827830Nodejs工具文件夹:robo3t-1.2.1-windows-x86_64-3e50a65.exe

如果装不上就装:navicat for mongodb(可装官方试用版)百度网盘18302827830Nodejs工具文件夹:robo3t-1.2.1-windows-x86_64-3e50a65.exe

可视化工具使用:

save(存)、find(找到)

mongodb的_id是自动生成的一个随机字符串,是mongodb的一个特点

三. mongoose -- 操作数据库

官方网站:mongoosejs.com

mongoosejs可以更快,更便捷的操作mongodb。可以把非关系型解构转成关系型结构

1. 安装

命令:npm i mongoose

图片.png

2. 新建一个app.js

//引进mongoose
const mongoose = require('mongoose')
//连接本地1910数据库
mongoose.connect('mongodb://localhost/1910', {useNewUrlParser:true})

//打开集合,得到当前数据库里集合的实例
const db = mongoose.connection
//处理打开失败的事件
db.on('error',console.error.bind(console,'connection error:'))
//打开事件(这个事件只会被触发一次)
db.once('open', function(){
    console.log("we're connected!")
})

//通过Schema 让数据结构化
//创建一个结构化的collection(集合),如果collection只是创建而没有数据的话在可视化工具里是看不到的,collection的名称要加上s,比如说users
const usersSchema = new mongoose.Schema({
    name: String,
    password: String
})

//利用创建好的Schema得到一个model,这个model是一个class
const Users = mongoose.model('users', usersSchema)

//存:
//通过实例化model得到一个document
const user = new Users({ name: 'lisi', password: '456'})

user.save((err, doc) => {
    if(err) console.error(err)
    else console.log(doc)
})

运行app.js node app

3. 总结使用mongoose操作数据库

(1)连接数据库并打开collection

(2)创建一个schema得到结构化的collection(集合),如果collection只是创建而没有数据的话在可视化工具里是看不到的,collection的名称要加上s,比如说users

(3)利用schema得到一个model

(4)然后new一个model把当前schema定义的结构化数据作为参数传进去就可以得到一个document

(5)然后用save()方法存入mongodb数据库

4. 查

//查所有
Users.find((err, docs) => {
    if(err) console.error(err)
    else console.log(docs)
})

//查一条       条件:password: '456'
Users.find({ password: '456' },(err, docs) => {
    if(err) console.error(err)
    else console.log(docs)
})

5. 删

Users.findOneAndDelete({ password: '456' }, (err,doc) => {
     if(err) console.error(err)
     else console.log(doc)
})

6. 修改

Users.findOneAndUpdate({ password: '123' }, { name: 'zhangsan'}, { new: true },(err,doc) => {
     if(err) console.error(err)
     else console.log(doc)
})
//这里的new: true 加上打印之后就是修改之后的数据

补充:MVC

control:处理逻辑,需要数据时调model

model:操作数据库,封装数据库方法

view:前端视图


图片.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容