Mongoose -- quick start

使用mongoose之前,首先要確保你的電腦安裝了MongoDB和Node。

安裝MongoDB的教程可見:
http://www.jianshu.com/p/1bb663918cfd

然後,我們可以用npm指令來安裝mongoose:

$ npm install mongoose

接下來,我們就可以使用mongoose來連接MongoDB了,連接方法如下:

// getting-started.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

下面,可以爲本次的連接定義兩個事件監聽的回調函數,當連接成功open和出錯error的時候,會分別調用。

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  // we're connected!
});

連接成功後,我們就可以對數據庫進行操作。我們默認下面的代碼是寫在連接成功的回調函數中。

規則1: Schema

在Mongoose中,Schema是所有數據的框架和源頭。我們必須首先創建Schema。

var kittySchema = mongoose.Schema({
    name: String
});

上面這樣定義的Schema有一個name屬性,類型爲String。

下一步,利用Schema,可以生成模型Model。

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

模型相當於是一個類,我們使用這個”類”來創建實例,也就是具體的數據對象。

var silence = new Kitten({ name: 'Silence' });
console.log(silence.name); // 'Silence'

如果想要給Kitten類的實例文檔添加方法,那麼需要在kittySchema上定義:

// NOTE: methods must be added to the schema before compiling it with mongoose.model()
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);

下面,新建的kittens就可以擁有speak方法了:

var fluffy = new Kitten({ name: 'fluffy' });
fluffy.speak(); // "Meow name is fluffy"

目前爲止,我們還沒有保存任何東西到MongoDB中。每個文檔(實例)都可以被保存到數據庫中,只需要使用save方法即可。

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

之後,我們可以通過Model來搜索我們保存的所有kittens.

Kitten.find(function (err, kittens) {
  if (err) return console.error(err);
  console.log(kittens);
})

當然也可以使用filter來尋找:

Kitten.find({ name: /^fluff/ }, callback);

這樣,我們就可以找到所有名字以Fluff開頭的kittens。在callback函數中,我們可以查看它們。

發佈了344 篇原創文章 · 獲贊 39 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章