啥也不说了,赶紧推荐一篇文章,非常棒
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就很好理解,再结合上面的文章,轻松入门。。