前端知识点回顾——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

时间: 2024-10-06 00:27:17

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

前端知识点回顾——Nodejs

Node.js 事件循环机制 setImmediate()是将事件插入到事件队列尾部,主线程和事件队列的函数执行完成之后立即执行setImmediate指定的回调函数,和setTimeout(fn,0)的效果差不多 process.nextTick()方法可以在当前"执行栈"的尾部-->下一次Event Loop(主线程读取"任务队列")之前-->触发process指定的回调函数.也就是说,它指定的任务总是发生在所有异步任务之前,当前主线程的末尾. 事件

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

koa 基于Node.js的web框架,koa1只兼容ES5,koa2兼容ES6及以后. const Koa = requier("koa"); const koa = new Koa(); //koa.use注册中间件(一个用来处理请求/修饰向服务器发起的请求的异步函数,参数为ctx和next) //每一个请求都会从上往下执行,当一个中间件调用 next() 则该函数暂停并将控制传递给定义的下一个中间件.当在下游没有更多的中间件执行后,堆栈将展开并且每个中间件恢复执行其上游行为. k

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

fetch 在原生ajax+es6promise的基础上封装的一个语法糖,返回promise对象. fetch(url, initObj) .then(res=>res.json()) .then(data=>{ //这里得到返回的json对象,可进行操作 }) .cateh(err){ console.log(err); }; //initObj { body: JSON.stringify(data), // must match 'Content-Type' header cache:

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

jQuery jQuery的实现原理 参考:https://blog.csdn.net/zhouziyu2011/article/details/70256659 外层沙箱和命名空间$ 为了避免声明了一些全局变量而污染,把代码放在一个"沙箱执行".jQuery具体的实现,都被包含在了一个立即执行的匿名函数构造的闭包里面,然后只暴露 $ 和 jQuery 这2个变量给外界: (function(window, undefined) { // 用一个函数域包起来,就是所谓的沙箱 // 在这

前端知识点总结(转载)

转自--- https://github.com/hawx1993/Front-end-Interview-questions/blob/master/README.md 本文旨在加深对前端知识点的理解,资料来源于网络,由本人(博客:http://segmentfault.com/u/trigkit4) 收集整理. 一些开放性题目 1.自我介绍:除了基本个人信息以外,面试官更想听的是你与众不同的地方和你的优势. 2.项目介绍 3.如何看待前端开发? 4.平时是如何学习前端开发的? 5.未来三到五

面向对象【day07】:多态-面向对象使用场景--知识点回顾

本节内容 多态 面向对象使用场景 知识点回顾 一.多态 一.概述 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作.简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针. 那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化:继承可以扩展已存在的代码模块(类):它们的目的都是为了--代码重用.而多态则是为了实现另一个目的--接口重用!多态的作用,就是为了

中级前端知识点提要

中级前端知识点提要 标签(空格分隔): JavaScript HTML 基础 1 Restful API Representational State Transfer(表现层状态转移). URL定位资源,用HTTP动词(GET POST PUT DELETE)描述操作. 资源.统一接口.URI.无状态. 应该将API的版本号放入URL:URL中只能有名词而不能有动词:API应该提供参数. 2 CommonJS/AMD/CMD/ES6 Module 2.1 CommonJS 是Node.js模块

前端知识点总结——Angular

前端知识点总结--Angular 一.Angular概述 基于命令行的开发方式? ①hot reload ②编译工作 ③集成了webpack打包工具 .... angular.cn 中文angular.io 正式官网angular.cn/guide/styleguide 风格指南 1.what? angular是一个Google推出的js框架,是以模块为基本单位,模块又可以包含组件.指令.过滤器.. 1.1 版本问题 angular angular2.0以后所有的版本统称为angular (当前

面向对象知识点回顾整理

目录 面向对象知识点回顾整理 一.面向对象基础 1.类和对象 2.属性查找: 3.绑定方法: 4.对象之间的交互: 5.类的内置属性 6.三大特性:继承.多态.封装 二.面向对象高阶 元类 单例模式 面向对象知识点回顾整理 一.面向对象基础 面向对象编程的核心是对象二字,对象是属性与方法的结合体,python中一切皆对象. 优点:可扩展性强 缺点:编程的复杂度高 1.类和对象 对象:属性和方法的结合体 类:一堆属性和方法的结合体 python中是先有类再有对象,现实生活中是先有对象再有类 类名(