mongoDB初阶系列三:mongoose

媒介

上篇 mongoDB初阶系列二:node中的增编削查 中解说了用node驱动来对数据举行增编削查,本篇将继承前进,照旧经由过程增编削查来解说如何用mongoose更顺畅的操控MongoDB。

什么是Mongoose

Mongoose是一个Node模块。供应了一种更高效的在node中操纵mongoDB的计划。它供应了一个到MongoDB鸠合的接口,以及一些有用的功用,比方schema条理构造,中间件以及数据校验。

schema定义

起首,须要装置mongoose,装置mongoose的敕令以下:npm install mongoose,同时,记得开启mongoDB效劳。

在Mongoose中,统统都被Schema所驱动。在下面顺序中,我们定义了一个Tasks,你能够明白为,这个Tasks对应在mongoDB中是一个tasks鸠合。该鸠合有两个属性,一个是project,范例为string,另一个是description,范例也是string。

var mongoose = require('mongoose')

mongoose.connect('mongodb://localhost:27017/demodb')
var db = mongoose.connection;
db.on('error', function(error) {
  console.log(error);
});

// schema定义
var Tasks = new mongoose.Schema({
  project: {type : String, default : '默许使命'},
  description: String
});
mongoose.model('Task', Tasks);

// add
var Task = mongoose.model('Task');
var task = new Task();
task.description = 'task1 description.';
task.save(function(err) {
  if (err) throw err;
  console.log('Task saved.')
})

假如数据库demodb中没有tasks这个鸠合,当上面顺序实行时,会自动建立tasks鸠合,当实行该顺序后,我们发明数据库中tasks鸠合多了一行数据:
《mongoDB初阶系列三:mongoose》

假如我们不小心把task.description的值给予了数字123,那末顺序能一般实行吗?
固然,mongoose会帮我们自动将数字123转换成字符串123。末了效果会是如许:
《mongoDB初阶系列三:mongoose》

能够用文档的内部ID猎取和删除文档,代码以下:

// 删除
var Task = mongoose.model('Task')
Task.findById('5b56ce3c2fa17f02e459fe54', function(err, task) {
  task.remove()
})

固然,你能够用其他前提来举行删除,代码以下:

var Task = mongoose.model('Task')
Task.findOne({ 'description': '12' }, function(err, task) {
  task.remove()
})

下面的代码用Mongoose更新了一个文档id为5b5bebbfbf04e70bd432bde1的文档

var Task = mongoose.model('Task');
Task.update(
  {_id: '5b5bebbfbf04e70bd432bde1'},
  {description: 'update description.'},
  {multi: false},
  function(err, rows_updated) {
    if (err) throw err;
    console.log('Updated.');
  }
)

固然你也能够用mongoose的find要领定位一个文档,然后修正并保留它。

下面这段代码对tasks鸠合举行搜刮,并输出每项使命的唯一ID和形貌,等打印完成后,封闭数据库衔接。

var Task = mongoose.model('Task');
Task.find((err, tasks) => {
  console.log(tasks)
  if (tasks != null) {
    tasks.map(v => {
      console.log('ID:' + v._id);
      console.log(v.description);
    })
  }
  db.close()
});

固然,查询要领有许多,这里只是枚举其一。

可视化东西引荐

趁便提一下,能够运用mongoDB官方推出的compass东西来检察和操纵数据(包含增编削查),关于测试和调试数据来讲,异常的轻易。

小结

以为本身是操控mongoDB的高手了吗?或许还不是,但读完本系列的初阶三部曲,相信你应当已控制了许多基础知识,假如你决议深切运用Mongoose,请参考它的在线文档 http://mongoosejs.com/docs/in…

到这里为止,mongoDB初阶系列将告一段落,同时,引荐以下书本供须要深切明白mongoDB的朋侪继承参考:
MongoDB威望指南(第2版)
MongoDB实战(第二版)

    原文作者:moddx
    原文地址: https://segmentfault.com/a/1190000015799027
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞