學習mongoose首先須要安裝nodejs 和 MongoDB,網上有不少安裝教程,這裏很少贅言。node
接着cmd到你的工程裏面執行npm install mongoose --save (執行--save會在你的json文件裏面添加依賴)。mongodb
有了這些咱們就能夠開始學習mongoose了,那麼咱們就先來學習下mongoose存儲的三個重要概念。數據庫
Schema: 一種以文件形式存儲的數據庫模型骨架,不具有數據庫的操做能力。在mongoose 一切事物都開始於Sechma,Sechema不只定義了文檔的結構和屬性的屬性,還定義了文檔實例方法、靜態模型方法、複合索引和文檔生命週期鉤子,稱爲中間件。來看代碼:npm
1 var mongoose = require('mongoose'); //引用mongoose模塊 2 var db = mongoose.createConnection('localhost','test'); //建立一個數據庫鏈接 3 4 db.on('error',console.error.bind(console,'鏈接錯誤:')); 5 db.once('open',function(){ 6 //一次打開記錄 7 }); 8 //假設如下代碼在回調中處理 9 var Schema = mongoose.Schema; //定義一個Schema 10 11 var blogSchema = new Schema({ 12 title: String, //定義一個title屬性,類型String 13 author: String, 14 body: String, 15 comments: [{ body: String, date: Date }], 16 date: { type: Date, default: Date.now }, 17 hidden: Boolean, 18 meta: { 19 votes: Number, 20 favs: Number 21 } 22 });
如今已經定義好了Scame,那麼接下來幹嗎呢?mongoose的第二個概念就要出場了——Model。json
Model:由Schema
發佈生成的模型,具備抽象屬性和行爲的數據庫操做對。mongoose
//使用mongoose.model(modelName, schema)將定義好的Schema實例爲能夠爲咱們工做的model。 var Blog = mongoose.model('Blog', blogSchema);
Entity:由Model
建立的實體,他的操做也會影響數據庫。學習
var blog1 = new blog({title:'mongoose learning',author:'yuanzp',body:'mongoose is easy to learning.'}); //打印這個實體的名字看看 console.log(blog1.name); //Krouky
Schema
、Model
、Entity
的關係請牢記,Schema
生成Model
,Model
創造Entity
,Model
和Entity
均可對數據庫操做形成影響,但Model
比Entity
更具操做性。ui