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);
}); */

前端知识点回顾——mongodb和mongoose模块的更多相关文章

  1. 前端知识点回顾——HTML,CSS篇

    前端知识点回顾篇--是我当初刚转行为了面试而将自己学过的前端知识整理成的一份笔记,个人目的性很强,仅供参考. doctype 有什么用 doctype是一种标准通用标记语言的文档类型声明,目的是告诉标 ...

  2. 前端知识点回顾——Reactjs

    React.js 编写react需要安装的三个开发环境下的模块 babel 解析JSX react 实现ui用户界面 react-dom 处理dom JSX:在JavaScript里面写html代码( ...

  3. 前端知识点回顾——koa和模板引擎

    koa 基于Node.js的web框架,koa1只兼容ES5,koa2兼容ES6及以后. const Koa = requier("koa"); const koa = new K ...

  4. 前端知识点回顾——Nodejs

    Node.js 事件循环机制 setImmediate()是将事件插入到事件队列尾部,主线程和事件队列的函数执行完成之后立即执行setImmediate指定的回调函数,和setTimeout(fn,0 ...

  5. 前端知识点回顾之重点篇——ES6的async函数和module

    async函数 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是 Generator 函数的语法糖 什么是语法糖? 意指那些没有给计算机语言添加新功能,而只是 ...

  6. 前端知识点回顾之重点篇——ES6的Promise对象

    Promise Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大. 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异 ...

  7. 前端知识点回顾之重点篇——CSS中flex布局

    flex布局 来源: http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool 采用 Flex 布局的元素 ...

  8. 前端知识点回顾之重点篇——jQuery实现的原理

    jQuery jQuery的实现原理 参考:https://blog.csdn.net/zhouziyu2011/article/details/70256659 外层沙箱和命名空间$ 为了避免声明了 ...

  9. 前端知识点回顾——Javascript篇(六)

    fetch 在原生ajax+es6promise的基础上封装的一个语法糖,返回promise对象. fetch(url, initObj) .then(res=>res.json()) .the ...

随机推荐

  1. CentOS7安装Oracle11g数据库

    1.关闭防火墙systemctl stop firewalled servicesystemctl disable firewalled service 2.关闭selinuxvim /etc/sel ...

  2. Flutter——Wrap组件(流式布局)

    Wrap 可以实现流布局,单行的 Wrap 跟 Row 表现几乎一致,单列的 Wrap 则跟 Row 表现几乎一致.但 Row 与 Column 都是单行单列的,Wrap 则突破了这个限制,mainA ...

  3. IDEA光标跟随原因是jdk载入的问题BUG 修正 需要I安装最新版本1.8JDK 1.9之后的不清楚 谨慎

    解决方法是 选择jdk本地版本 重启就好了 https://blog.csdn.net/Utopia_Zq/article/details/81190300?utm_source=blogxgwz2 ...

  4. C C++输出格式 <转载>仅用于个人

    转载链接:C++ C C语言输出格式总结 1 一般格式    printf(格式控制,输出表列)    例如:printf("i=%d,ch=%c\n",i,ch);    说明: ...

  5. JavaScript004,输出

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. PhpStudy升级MySQL版本到5.7

    1:备份当前数据库数据. 最好是导成 SQL 文件 2:备份 PhpStudy 下的 MySQL 文件夹.以防升级失败.还可以使用旧版本的数据库 3:下载MySQL5.7.解压.然后放在 PhpStu ...

  7. email.py

    import os import argparse import yaml import smtplib import csv from email.mime.multipart import MIM ...

  8. list交集

    在C#语言程序设计中,List集合是常用的集合数据类型,在涉及集合类型的运算中,有时候我们需要计算2个List集合中共有的数据,即对2个List集合求交集运算.此时可以使用C#语言提供的Interse ...

  9. 7、Spring Boot 2.x 集成 Redis

    1.7 Spring Boot 2.x 集成 Redis 简介 继续上篇的MyBatis操作,详细介绍在Spring Boot中使用RedisCacheManager作为缓存管理器,集成业务于一体. ...

  10. //点击按钮加减音频音量到最小会出现bug什么意思???

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...