node(3)MVC代碼結構模式moogoDB的學習

---恢復內容開始---html

1、 MVC代碼結構模式

設計模式:觀察者模式、中介者模式,這種模式,主要作的事情是處理類與類之間‘高內聚、低耦合’;node

代碼架構模式:MVCMVVMMVPmysql

    Model:模型,處理數據的模型。sql

    View:視圖部分,眼睛能看到的部分mongodb

   Controller:控制器,是view(視圖層)model(數據層)的一個橋樑;數據庫

2、數據庫的學習

一、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);
})
相關文章
相關標籤/搜索