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);
相關文章
相關標籤/搜索