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首先要想明白一件事儿,全部的操做都不是对数据库进行的。全部的操做都是对类、实例进行的。可是数据库的持久化自动完成了。