mongodb操做之mongoose(一)

NOSQL存储做为一种与关系性数据库彻底不一样的存储方式,提供了灵活,大型,敏捷,可扩展的存储模式,而且在有着复杂的数据情形下性能彻底
不逊色于RDBMS,而做为NOSQL中流行程度较高的数据库,mongodb有着上手容易,数据查询方式多样等诸多特色,因此也深受欢迎node


今天说的mongoose是一种利用node模块对mongodb数据库进行操做的工具,它有着结构化,操做性强,可重复的优势。更重要的是它将mongodb返回的Json字符串包装成了Json对象,这在操做时要比直接使用字符串方便许多。
今天就利用mongoose的官方文档对它的标准操做进行简单的分析。mongodb

 1. 获取mongoose数据库

var mongoose = require('mongoose');

 2 . 链接数据库mongoose

mongoose.connect('mongodb://yourdb');

 3. 链接成功或发生error的事件触发工具

var db = mongoose.connection;
 db.on('error', console.error.bind(console, 'connection error:'));
 //链接失败时的操做
 
 db.once('open', function(){
            //do something after connecting 
 })
 //链接成功时的操做

 4. 在mongoose中,全部事务都由Schema派生性能

1) 定义Schema
 var kittySchema = mongoose.Schema({
     name: String
 })

 2) 将Schema转换为Model
 var Kitten = mongoose.model('Kitten', kittySchema);

 5. 全部的事务都定义为modelui

var silence = new Kitten(name: 'Silence');

 6. 在Schema中添加属性和方法this

kittySchema.methods.speak = function() {
    var greeting = this.name;
    ? 'meow name is' + this.name
    : 'i don\'t have a name';
    console.log(greeting);
  }//定义方法

  var Kitten = mongoose.model('Kitten', kittySchema);

  var fluffy = new Kitten({ name: fluffy });
  fluffy.speak();//使用方法

 7. 保存数据对象(若是发生错误时会返回,且the first arg是err)code

fluffy.save(function(err, fluffy) {
      if(err) return console.error(err);
      fluffy.speak();
  });

 8. 显示全部数据对象(Kitten)对象

Kitten.find(function(err, Kittens) {  //Kittens是查询后获得的数据对象
    if(err) return console.error(err);
    console.log(Kittens);
})

 9. query method(举例)

Kitten.find({ name: yourquery }, callback);
相关文章
相关标签/搜索