zoukankan      html  css  js  c++  java
  • 前端知识点回顾——mongodb和mongoose模块

    mongodb和mongoose模块

    数据库

    数据库有关系型数据库(MySQL)和非关系型数据库(mongodb),两者的语法和数据存储形式不一样。

    • mySQL 关系型数据库

    类似于表格的形式,每一条数据都是以id为标识

    table
    thead name sex age id
    tbody May female 18 1
    Simple male 25 2

    • mongodb 非关系型数据库

    集合,相当于表的概念,Bson,一条数据代表一个文档(数据的基本单位)

    {
    id :
    name : May
    age : 18
    }

    mongodb

    大数据库-->子数据库-->集合(Bson)-->文档(数据的基本单位)-->字段(键值对)

    在黑窗口下执行的一些命令行:

    mongod --dbpath F:database 启动服务端,指定数据存储路径
    mongo 启动客户端
    show dbs 显示有多少个子数据库
    use simple 创建/跳转到simple子数据库进行操作
    db.dropDatabase() 删除当前子数据库
    db.createCollection(“集合名”, 限制内存大小) 在子数据库下创建一个集合
    show collections 在当前子数据库内查看所以的集合
    db.集合名.drop() 删除当前集合
    db.集合名.insert({name:”simple”,sex:”male”}) 往集合中插入数据
    db.集合名.find() 查看集合中的所有数据
    db.集合名.find().pretty() 显示格式化后的数据
    db.集合名.update({“name”:”May”},{$set:{sex:”male”}},{multi:false}) 修改集合中,name属性为wula的数据,将其sex属性改为boy。(multi属性默认可不写为false,此时只会修改先匹配到的第一条数据;改为true会将所有匹配的数据都进行修改)

    mongoose模块

    // mongoose 导入包
    const mongoose = require("mongoose");
    //连接本地子数据库simple(没有的话会创建一个),返回一个实例,默认端口27017
    const db = mongoose.createConnection("mongodb://localhost:27017/simple", {useNewUrlParser : true});
    //用原生的es6的promise替换掉mongoose自定义的promise
    mongoose.Promise = global.Promise;
    //监听是否链接成功
    db.on("error", () => {
    console.log("数据库链接失败");
    });
    db.on("open", () => {
    console.log("数据库链接成功");
    });
    // 规范数据的字段,得到Schema类
    const Schema = mongoose.Schema;
    //得到Schema实例,用来规范数据类型或者字段
    const userSchema = new Schema({
    name : String,
    age : Number, //类型的构造函数
    sex : String
    },{
    versionKey : false //取消往每个数据中插入版本信息
    });
    //创建一个集合,名为user,返回一个构造函数
    const User = db.model("user", userSchema, "user"); //如果不写第三个参数则集合名字会在后面加s为users,加了第三个参数就会直接指定它的名称
    //要插入集合的文档/数据
    const obj1 = {
    name : "simple",
    age : 25,
    sex : "男"
    };
    //插入数据
    const d1 = new User(obj1);
    d1.save((err, data) => {
    console.log(data);
    }); //返回一个promise对象
    /* d1.save().then(res => {
    console.log(res);
    }).catch((err) => {
    console.log(err);
    });
    */
    //删除数据
    /* User.deleteOne({name:"simple"}, (err, data) => {
    if(err) console.log(err);
    console.log("删除成功", data);
    }); */
    /* User.deleteMany({ name: "May" }, function (err) {
    if (err) console.log(err);
    }); */
    
  • 相关阅读:
    链表详解自带代码
    队列
    单词翻转
    表达式求值
    一元多项式
    循环链表
    学生成绩管理系统
    双向循环链表
    双向链表
    静态链表
  • 原文地址:https://www.cnblogs.com/simpul/p/11027159.html
Copyright © 2011-2022 走看看