數據庫有關係型數據庫(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); }); */