mongodb模式模型設計及編碼-Mongoose

來源:互聯網
上載者:User

標籤:col   編譯   erro   count   lang   工具   val   資料   view   

走到這一步,我們的網站還不能稱為動態網站,因為所要的資料都是偽造的,所以現在要對資料庫的模型進行設計  Mongoose我們用到的工具模組是Mongoose,他能對Mongodb進行建模的這樣一個操作,在Mongoose裡面有這樣幾個概念,分別是
Schema: 模式,在模式裡面我們對資料進行定義,定義欄位對類型,比如是字串類型,還是數字類型Model: 模型,編譯模型,對傳入對Schema進行編譯,然後會產生建構函式Documents: 文檔

 

Schema-模式定義
var mongoose = require(‘mogoose‘);var MovieSchema = new mongoose.Schema({  doctor:String,  title:String,  language:String,  country:String,  year:Number,  summary:String})

 

Model-編譯模型
var mongoose = require(‘mongoose‘);var MovieSchema = require(‘./schemas/movie‘);var Movie = mongoose.model(‘Movie‘,MovieSchema)module.exports = Movie

 

 

有了資料庫模型以後,事情就變得好辦了,現在對文檔執行個體化,只需要調用模型,也就是這個建構函式,傳入一條資料,然後再調用save方法,就可以把這條資料給傳入到資料庫裡面去
//Documents-文檔執行個體化var Movie = require(‘./model/movie‘);var movie = new Movie({  title:‘機械戰警‘,  doctor:‘何塞.帕迪利亞‘,  year:2018})movie.save(function(err){  if(err){    return handleError(err);  }})

 

資料庫的查詢分成多種,查詢批量的,單條的,或者指定條件的查詢,那麼批量查詢只需要調用模型的find方法,傳一個Null 物件就ok了
//Documents - 資料庫批量查詢var Movie = require(‘./models/movie‘);app.get(‘/‘,function(req,res){Movie  .find({})  .exec(function(err,movies){    res.render(‘index‘,{      title:‘imooc首頁‘,      movies:movies    })  })})

 

單條的話,傳入一個特定的key,比如Movie.findOne
//Documents - 資料庫單條查詢var Movie = require(‘./models/movie‘);app.get(‘/‘,function(req,res){  Movie  .findOne({_id:id})  .exec(function(err,movies){    res.render(‘index‘,{      title:‘imooc首頁‘,      movies:movies    })  })})

 

 

單條資料的刪除,直接調用模型的remove方法,傳入一個特定的key和value就可以了
//Documents - 資料庫單條刪除var Movie = require(‘./models/movie‘);app.get(‘/‘,function(req,res){  Movie    .remove({_id:id},function(err,movie){      if(err){        console.log(err);      }    })})

 

 

然後我們需要調整一下模式和模型,他們目錄的層次
nodeMongodb  node_modules  bower_components  view    index.jade    detail.jade    admin.jade    list.jade  models    movie.js  schemas    movie.js  app.js
最後我們來實現資料庫的增刪改查,以及開發後端的邏輯  

 

mongodb模式模型設計及編碼-Mongoose

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.