node18---Mongoose

2、索引index
数据库中,根据一个字段的值,来寻找一个文档,是很常见的操做。好比根据学号来找一个学生。
这个学号,是惟一的,只要有学号,就能惟一确认一个学生的文档。学号这个属性,就很是适合创建索引,这样一来,查找学生就变得简单了。

这个语句,可以查看检索的过程:
1db.student.find({"name":"user888"});

学生的姓名是惟一的,为了快速的进行检索,因此就把name属性创建成为“索引”。
1db.student.createIndex({"name":1});      //1表示name从小到大排列
这样,从此经过name寻找student文档的时候,速度很是快。由于可以快速的从索引表中,找到这个文档。
缺点就是插入每条数据的时候,时间变慢了,效率低了。可是换回来的就是寻找的速度快了。

索引这个属性,全部的文档都不能相同:
1db.members.createIndex( { "user_id": 1 }, { unique: true } );
2、Mongoose
是一个将JavaScript对象与数据库产生关系的一个框架,object related model。操做对象,就是操做数据库了;对象产生了,同时也持久化了。
这个思路是Java三大框架SSH中Hibernate框架的思路。完全改变了人们使用数据库的方式。
http://mongoosejs.com/
//引包,并不须要引用mongodb这个包
var mongoose = require('mongoose');
//连接数据库,haha是数据库名字
mongoose.connect('mongodb://localhost/haha');

//建立了一个模型。猫的模型。全部的猫,都有名字,是字符串。“类”。建立类,数据库自动建立了cats集合,
var Cat = mongoose.model('Cat', { name: String });
//实例化一只猫,实例化类对象
var kitty = new Cat({ name: 'Zildjian' });
//调用这只猫的save方法,保存这只猫,调用类的方法
kitty.save(function (err) {
  console.log('喵喵喵');
});

var tom = new Cat({"name":"汤姆"});
tom.save(function(){
    console.log('喵喵喵');
});
上面的代码中,没有一个语句是明显的操做数据库,感受都在建立类、实例化类、调用类的方法。都在操做对象,可是数据库同步被持久了。

mongoose的哲学,就是让你用操做对象的方式操做数据库。
建立一个模型
1mongoose.model("Cat",{"name" : String , "age" : Integer}); 
就能够被实例化
1var kitty = new Cat({ name: 'Zildjian' });
而后这个实例就能够被save。

中文博客:  https://cnodejs.org/topic/51ff720b44e76d216afe34d9

mongoose首先要想明白一件事儿,全部的操做都不是对数据库进行的。全部的操做都是对类、实例进行的。可是数据库的持久化自动完成了。
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息