Mongoose 教學
什麼是Mongoose?
Mongoose 是
一套給 Node.js 用的 MongoDB ODM,
透過 mongoose 可以
用包裝過的、
更高階的、
更直覺的 API 語法,
以及
模擬 SQL 資料庫 schema-based 的方式,
來操作 MongoDB 資料庫。
Schema
mongoose 的 Schema 概念就是用 schema-based 的方式,定義一個 collection 的組成結構。
Model
而 mongoose 的 Model 概念,則是對一個 collection 結構定義與操作方法的集合,也就是用 Schema 定義了一個 collection 的結構,加上其他對這個 collection 的驗證設定、操作方法等等,便構成了一個 Model。
而Mongoose有兩大特色:
為什麼 Schema-less 的資料庫需要 Schema-based?
NoSQL 的 MongoDB 本身就是 schema-less 的資料庫,結果用 mongoose 還要去刻意模擬成 schema-based,這樣的思路是什麼?
NoSQL 的 MongoDB 本身就是 schema-less 的資料庫,結果用 mongoose 還要去刻意模擬成 schema-based,這樣的思路是什麼?
其實這是對 NoSQL 的 schema-less 的誤解,schema-less 並不代表 no-schema。在應用當中還是需要一個 schema 來代表 model,而 schema-less 只是代表一種彈性的模式。
在Nodejs裡使用mongoose!!
var mongoose = require('mongoose');
導入mongoose模組
mongoose.connect('mongodb://localhost/MONGOOSETEST');
連結對應的資料庫:mongodb://localhost/MONGOOSETEST
|
var DB = mongoose.connection; DB.on('error', console.error.bind(console, 'connection error:')); DB.once('open', function callback () { console.log("連線成功"); |
連線檢測
|
var USERSCHEMA = new mongoose.Schema({ name:String, age:Number }); |
設定Schema
var USERMODEL = db.model('USER',USERSCHEMA);
建立model
var USERENTITY = new USERMODEL({name:'Zack'});
USERENTITY.save(function(){console.log("save "+USERENTITY.name)});
新增資料
USERENTITY.findOne({'name':'David'}, function (err, docs) {
console.log("搜尋資料並顯示年紀");
console.log(docs.age);
});
搜尋資料
USERSCHEMA.methods.speak = function(){
console.log("使用method");
console.log('My name is '+this.name);
}
建立methods
須在"建立model"前
使用methods
USERENTITY.speak();
Mongoose教學
By andy26283
Mongoose教學
- 884