数据库有关系型数据库(MySQL)和非关系型数据库(mongodb),二者的语法和数据存储形式不同。javascript
相似于表格的形式,每一条数据都是以id为标识java
table
thead name sex age id
tbody May female 18 1
Simple male 25 2es6
集合,至关于表的概念,Bson,一条数据表明一个文档(数据的基本单位)mongodb
{
id :
name : May
age : 18
}数据库
大数据库-->子数据库-->集合(Bson)-->文档(数据的基本单位)-->字段(键值对)promise
在黑窗口下执行的一些命令行:mongoose
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 导入包 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); }); */