前端知识点回顾——mongodb和mongoose模块

Posted simpul

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端知识点回顾——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);
); */

以上是关于前端知识点回顾——mongodb和mongoose模块的主要内容,如果未能解决你的问题,请参考以下文章

$gte 和 $lte 在 Mongoose/MongoDB 中没有按预期工作

如何在 mongodb 和 mongoose 模型中使用 cloudinary

node.js操作数据库之MongoDB+mongoose篇

mongoose包操作mongoDB

NestJs / Mongoose 在 Docker 撰写时无法建立 MongoDB 数据库连接

Mongoose/MongoDB:针对特定的子模式?