---恢復內容開始---html
設計模式:觀察者模式、中介者模式,這種模式,主要作的事情是處理類與類之間‘高內聚、低耦合’;node
代碼架構模式:MVC、MVVM、MVPmysql
Model:模型,處理數據的模型。sql
View:視圖部分,眼睛能看到的部分mongodb
Controller:控制器,是view(視圖層)model(數據層)的一個橋樑;數據庫
一、NOsql的學習npm
提示:NoSQL數據庫分爲四大類,我們只是學習了其中一種mongoDB(文檔型數據庫);json
二、安裝MongoDB數據庫設計模式
mongoDB官網:https://www.mongodb.com/數組
提示:①將壓縮包解壓到C:\program files文件夾當中
經過高級系統設置安裝路徑
在終端當中輸入:mongo -version 若是有數據顯示出來講明你的數據庫安裝成功;
三、開啓數據庫
若是你看到27017說明你的數據庫開啓了
-dbpath:表明的是你數據庫倉庫的路徑
C:\database 就是你數據庫倉庫的路徑
提示:若是你想操做數據庫,開啓數據庫的這個終端命令窗口不能關閉,重新的在開啓一個終端命令窗口操做數據庫;
四、基本的操做-數據庫
重點:操做數據的時候,數據庫必須開啓來; 開啓數據庫 mongod -dbpath c:\database
第一步:mongo 開啓REPL環境
第二步:use xsgl ---建立數據庫
第三步:我們當年的mysql數據庫我們稱做爲表-可是在mongodb數據當中沒有表的概念,它叫作集合(collection)
db.collection(集合的名字).insert(json):插入數據
第四步:查詢所有的數據
查詢數據:db.banji0920.find(); db.集合.find()
第五步:查詢更加詳細的數據
db.banji0920.find({"name":'xiaoming'})
五、增、查、改、刪
http://www.runoob.com/mongodb/mongodb-dropdatabase.html 學習的地址
提示:操做數據庫,必定要開啓數據庫。
增 db.集合的名字.insert(json)
查 db.banji0920.find()->查詢所有的數據
db.banji0920.find({「age」:17},{「sex」:’nv’}) ->查詢的條件 且的形式
db.banji0920.find({「age」:{「$gt」:20}}) - >查詢的條件是 要查詢的數據的你年齡大於20歲的 大於
db.banji0920.find({「age」:{「$gte」:20}}) 大於等於
Db.banji0920.find({「age」:{「$lt」:20}}) 小於
Db.banji0920.find({「age」:{「$lte」:20}}) 小於等於
db.banji0920.find({"$or":[{"name":"xiaogang"},{"name":"xiaozi"}]}) 查詢或的關係
改 db.banji0920.find()
修改:db.banji0920.update({「name」:」xiaozi」},{「$set」:{「name」:xiaoxiami}});
兩個參數:第一個參數修改的是誰 第二個參數:修改成什麼
刪
show dbs 展現所有的數據庫,可是我們發現,默認一個叫作local的數據庫
db.dropDatabase() 刪除數據庫
Show collections 查詢所有的集合
db.banji110.drop() ---刪除集合
3、可視化工具的 使用(mongobooster)
4、node操做數據庫-mongoDB
概述:原生的操做mongoDB不是重點,由於我們一會會學習mongoose代替mongoDB
https://www.npmjs.com/package/mongodb
//在調用mongod模塊的時候,這個對象打點一個屬性MongoClient,返回一個MongoClient的對象 var MongoClient = require('mongodb').MongoClient; //數據庫的地址 var url = 'mongodb://localhost:27017/xsgl'; //連接數據庫 MongoClient.connect(url, function(err,db) { if(!err){ console.log("連接數據庫成功"); }else{ console.log("連接數據庫失敗"); } });
提示:①如今的db參數就是你的數據庫對象,你就能夠操做它;當你引入mongoose的時候,mongodb已經捎帶腳的也下載進來了,由於mongoose須要mongodb的支持;
5、mongooses模塊
官方手冊:https://www.npmjs.com/package/mongoose
概述:mongoose模塊,簡單了mongodb操做,也就說對原生的mongodb進行了封裝;
第一步:建立身份證 cnpm init
第二步: 下載mongoose模塊
第三步:建立我們的app.js文件
//引入mongoose模塊 var mongoose = require("mongoose"); //連接數據庫 mongoose.connect("mongodb://localhost/xsgl",{useMongoClient:true}); cvar mongoose = require("mongoose"); //描述你存儲數據的key是什麼類型的 var schema = new mongoose.Schema({ 'name':String, 'age':Number, 'xuehao':Number }); //對外暴露一個類就能夠了 var Student = mongoose.model("Student",schema); //暴露類 module.exports = Student;
6、mongooses增、刪、改、查
增
//第一種方式 //增: var xiaoming = new Student({ "name":"小明", "age":18, 'xuehao':1001 }); //保存數據庫 xiaoming.save((err)=>{ if(!err) console.log("添加成功"); }) //第二種方式 Student.create({"name":"小紅","age":12,"xuehao":1002},function (err) { if(!err) console.log("添加成功"); })
注意:我們的集合是這個類名自動加了一個s
刪
//這個刪除的套路:先找到你要刪除的數據,可是返回的是一個數組
//第一種方式
Student.find({"name":"小子"},function (err,result) { var zhegeren = result[0]; zhegeren.remove(function (err) { if(!err) console.log("刪除掉了"); }); }) //第二種方式 Student.remove({"age":18},function (err) { if(!err) console.log("刪除成功"); })
改
//第一種方式 Student.find({"name":"小紅"},function (err,result) { var obj = result[0]; obj.name = "賈成豪"; obj.save(); }) //第二種方式 //Update(更新的是誰,更新爲何,callBack) Student.update({"name":"賈成豪"},{"$set":{"name":"小紅"}},function (err) { if(!err) console.log("更新成功"); })
查
Student.find({},function (err,result) { console.log(result); })