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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章