Mongoose 學習

啥也不說了,趕緊推薦一篇文章,非常棒

https://cnodejs.org/topic/504b4924e2b84515770103dd
對於剛接觸mongoose的人來說,要知道mongoose到底是什麼,Mongoose庫簡而言之就是在node環境中操作MongoDB數據庫的一種便捷的封裝。之後我麼要知道Schema骨架,Model模型,Entity實體,
這篇文章上面主要介紹了這些東西,和一些常用的操作,簡而言之就是,在Schema發佈Model,Model創建實體Entity。
每個層次有他們的職能,要搞清楚後才能更好地寫代碼,
在Schema上我們可以創建方法,類似於JS的裏的方法,可以被實體中使用方法,如果學過JS就很好理解,就類似於原型方法。只要是一個Model下的大家公用。我們數據庫中最重要的當然也是查詢,查詢功能機就需要在Mode或者Entity層次下進行查詢,至於增刪改查這種具體的CRUD是在實體完成的。類似我們添加用戶或刪除用戶,都需要在Entity層次下進行。附上一段代碼可能更好理解

router.post('/admin/music/new', function(req, res){
  console.log(req.body.music)
  var id = req.body.music._id
  var musicObj = req.body.music
  var _music

  if(id != 'undefined'){
    Music.findById(id, function(err, music){
      if(err){
        console.log(err)
      }
      _music = _.extend(music, musicObj)
      _music.save(function(err, music){
        if(err){
          console.log(err)
        }
        res.redirect('/music/'+music._id)
      })
    })
  }
  else{
    _music = new Music({
      musicer: musicObj.musicer,
      title: musicObj.title,
      country: musicObj.country,
      language: musicObj.language,
      year: musicObj.year,
      poster: musicObj.poster,
      flash: musicObj.flash,
      summary: musicObj.summary
    })
    _music.save(function(err, music){
       if(err){
          console.log(err)
        }
        console.log(music._id)
        res.redirect('/music/'+music._id)
    })
  }
})

這是一個簡單的後臺錄入界面,可以看出save方法是_music調用的,而music是new出來的實體。。代碼看不懂沒關係,主要是知道實體用來執行CURD操作。

只要搞懂這三個層次,mongoose就很好理解,再結合上面的文章,輕鬆入門。。

發佈了83 篇原創文章 · 獲贊 68 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章