啥也不說了,趕緊推薦一篇文章,非常棒
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就很好理解,再結合上面的文章,輕鬆入門。。