mongoose操作數據庫


mongoose模塊

Mongoose簡介

    Mongoose庫簡而言之就是在node環境中操作MongoDB數據庫的一種便捷的封裝,一種對象模型工具,Mongoose將數據庫中的數據轉換為JavaScript對象以供你在應用中使用。
    Node是什么模型? 對象
    官方文檔:https://www.npmjs.com/package/mongoose
    http://mongoosejs.com/

Mongoose的操作流程

  • 安裝mongoose
    npm install mongoose -D
    cnpm i mongoose -D/-S
  • 連接數據庫

使用mongoose連接數據庫的前提條件是:

1、mongo數據庫已經運行。
2、已經安裝了mongoose包

    var mongoose = require("mongoose");
    // 連接字符串格式為mongodb://主機/數據庫名
    mongoose.connect('mongodb://localhost/students');

上面這句的意思是連接到本地的mongodb的students 數據庫。

擴展:

// 連接本地mongodb ,本機的ip 127.0.0.1,端口:27017 數據庫:students
mongoose.connect("mongodb://127.0.0.1:27017/students",function(err){
   if(!err){//如果連接成功,則打印出connected to Mongodb
      console.log("connected to Mongodb");
   }else{
      throw err;//如果連接失敗,則拋出異常
   }
});
  • 新增數據
    先講解一個概念 Schema:

它可以理解為數據庫模型骨架,可以看作工廠中模具一樣,好比一個茶杯,喝水是茶杯最終的功能,茶杯本身就像是Model,那么茶杯的批量生產是需要靠工廠的模具成型的。Schema不僅定義了文檔結構和使用性能,還可以有擴展插件、實例方法、靜態方法、復合索引、文檔生命周期鈎子。

Schema  :  一種以文件形式存儲的數據庫模型骨架,不具備數據庫的操作能力   錢的電板
Model   :  由Schema發布生成的模型,具有抽象屬性和行為的數據庫操作對    錢的樣板  
Entity  :  由Model創建的實體,他的操作也會影響數據庫                     錢

存儲數據步驟:定義Schema (骨架) > 創建model(模型)> Entity實例化方法。

var Schema = mongoose.Schema;
//通過Schema創建一個模式NewsSchema  
var studentSchema  = new Schema({      
     name: String,
     age: String
});

studentSchema 類型有哪些:

String
Number
Date
Buffer
Boolean
Mixed
ObjectId
Array
//通過模式studentSchema  創建一個模型studentModel 
var studentModel = mongoose.model("students",studentSchema  );

var instance1 = new studentModel (); 
instance1.name="tangyan";
instance1.age="18";
//通過save方法保存
instance1.save(function(err){
    if (err) {
       console.log('保存失敗');  
       return;
    }
 });
  • 刪除數據
    思路:

1、刪除數據首先要知道刪除哪一條信息,需要知道信息的id.
2、把對應id的數據查詢出來,執行remove方法
假如我們要刪除id=”57e24521a755e1154039a403”的數據。

var id=”57e24521a755e1154039a403”; 
studentQueryModel.findById(id,function(err,doc){
   if(!doc){
      return next(new NotFound("Doc not found"))
   }else{
      doc.remove(function(){
         console.log('刪除成功');
      })
   }
});
  • 修改數據
    修改數據的思路:先把對應id的數據查詢出來,對需要修改的字段重新賦值,然后執行save方法保存。
    假如我們要修改id=”57e24521a755e1154039a403”的數據。
var id=”57e24521a755e1154039a403”; 

studentQueryModel.findById(id,function(err,doc){
   //console.log(doc);
   doc.name="xiaotangyan" ;//把name修改為xiaotangyan
   doc.save(function(err){
      if(!err){
          console.log('修改成功');
      }else{
         throw err;
      }
   });
});
  • 查詢數據
    下面find第一個參數{}里面為空,表示查詢所有的數據:
    docs表示查詢的結果集合,可用於渲染ejs模板引擎。
studentQueryModel.find({},function(err,docs){
	console.log(docs);
});

功能分析

主要包括三部分:

新聞發布:發布新聞 一個表單,包括:新聞標題、作者、來源、發布時間、內容。
新聞管理:新聞列表,點擊修改進入修改頁面,點擊刪除,直接刪除掉。
瀏覽新聞:點擊新聞列表的標題進入查看新聞頁面。

系統界面的作用:填寫數據和展示數據。
mongoDB作用:保存數據。

思考1:數據從頁面到數據庫要經歷哪些過程?

1、頁面填寫表單數據。
2、表單提交數據到后端。(form里面指定action路徑,提交方式: get或者post中任何一種)
3、后端程序接收參數。
4、后端程序保存數據到數據庫。

思考2:數據從數據庫到頁面要經歷哪些過程?

數據庫不會主動給數據,都是瀏覽器先發起請求,再由后端程序去查詢數據庫的。

1、瀏覽器發起一個請求。
2、后端程序接收請求。
3、后端程序查詢數據庫。
4、后端程序把拿到的數據返回給瀏覽器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM