node.js入门到放弃Day3(黑马李鹏周老师)——近两日的笔记整理 MongoDB + mqsql + Promise 课堂案例

这篇博客整理了Node.js中操作MongoDB的基础知识,包括MongoDB的关系型与非关系型数据库特性,如何连接和退出数据库,以及在Node.js中使用官方和第三方包操作MongoDB的步骤。此外,还介绍了Promise的概念和基本用法,解决回调地狱问题。
摘要由CSDN通过智能技术生成

8. MongoDB

近两日的笔记整理 MongoDB + mqsql + Peomise 课堂案例

8.1关系型数据库和非关系型数据库表

表就是关系,或者说表与表之间存在关系

  • 所有的关系型数据库都需要通过 sql 语言来操作
  • 所有的关系型数据库都需要在操作前都需要设计表结构
  • 还需要支持约束
    • 唯一的
    • 主键
    • 默认值
    • 非空
  • 非关系型数据库非常的灵活
  • 有的非关系型数据库就是 键值对
  • 但是 MongoDB 是长得最像关系数据库和非关系数据库
    • 数据库 -> 数据库
    • 数据表 -> 集合(数组)
    • 表记录 -> 文档对象
  • MongoDB 不需要设计表结构
  • 也就是说你可以任意的往里面存数据,没有结构性这么一说

MongoDB中文文档

https://www.runoob.com/mongodb/mongodb-tutorial.html

启动:

# 注意: mongdd 默认使用执行 mongod 命令所处盘符根目录下的 /data/db 作为自己的数据存储目录
mongod
# 如果想要修改默认的数据存储目录。可以:
mongod --dbpath=数据存储目录路径

停止:

# 在开启服务的控制才,ctrl+c
# 或者直接关闭

8.2连接和退出数据库

连接:

mongo

退出:

exit

8.3 基本命令

  • show dbs

    • 查看当前数据库
  • db

    • 查看当前操作的数据库
  • use 数据库名称

    • 切换到指定数据库(如果没有就新建)
  • 插入数据

8.4 在 Node 中如何操作 MongoDB

使用官方的 mongodb 包来使用
  • 网址:https://www.npmjs.com/package/mongodb
使用第三方 mongoose 来操作MongoDB

第三方包: mongoose 基于mongodb 包再次封装。

  • 网址:https://mongoosejs.com/
1.基本概念
  • 数据库
  • 一个数据库中有多个集合,多个集合里可以有多个文档
  • 文档
{
   
	qq:{
   
        shuju1:[
            
        ],
            ....
	},
    taobao:{
   
        
	},
    baidu:{
   
	}
}
2.起步:

安装:

npm i mongoose

hello world:

const mongoose = require('mongoose');

// 连接mongodb数据库
mongoose.connect('mongodb://localhost:27017/test', {
    useNewUrlParser: true, useUnifiedTopology: true });

/* 创建一个模型
即使在设计数据库
它是动态的非常灵活,只需要在代码中设计
 */
// 实例化cat
const Cat = mongoose.model('Cat', {
    name: String });

// 持久化保存 kitty 实例
const kitty = new Cat({
    name: 'Zildjian' });
kitty.save().then(() => console.log('meow'));
3.官方指南
3.1设计Schema 发布 Model
// 连接数据库

var mongoose = require('mongoose');

var Schema = mongoose.Schema;

// 指定连接的数据库不需要存在,当你插入第一条数据之后就会自动被创建出来
mongoose.connect('mongodb://localhost/itcast');

/* 设计集合结构(表结构)
字段名称就是表结构中的属性名称
约束的目的是为了保证数据的完整性,不要有脏数据 */
var userSchema = new Schema({
   
    username: {
   
        type: String,
        require: true
    },
    password: {
   
        type: String,
        required: true
    },
    email: {
   
        type: String
    }
});

// 3.将文档结构发布为模型
/*    mongoose.model 方法就是用来将一个架构发布为 model
第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称, mongoose 会自动将大写名词的字符串生成 小写复数 的集合名称;
例如这里的 Uer 最终会变成 users 的集合名称
第二个参数: 架构 Schema
    返回值:模型构造函数 */
var User = mongoose.model('User', userSchema);

// 4.当我们有了模型构造函数之后,就可以这个构造函数对 User 集合中的数据可以为所欲为了

期间要确保数据库已经在 cmd 开启

3.2 增加 数据
var admin = new User({
   
    username: 'admin',
    password: '123',
    email: 'admin@admin.com'
});

admin.save(function(err, ret) {
   
    if (err) {
   
        console.log(
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值