> npm install mongoose
Mongooseでは最初にSchemaを定義してdocumentを生成します。以下、サンプルプログラムです。
var mongoose = require('mongoose');
// enum
var genders = 'male,female,neuter'.split(',');
// DBクローズ処理。
var closeDB = function() {
db.close(function(err, result) {
console.log("close!");
});
};
// コネクション。dbオプションとしてsafe:true, serverオプションとしてauto_reconnect:trueを設定。
var opts = {server:{auto_reconnect:true}, db:{safe:true}};
//var db = mongoose.createConnection('mongodb://localhost/exampleDB2', opts);
var db = mongoose.createConnection('localhost', 'exampleDB2', 27017, opts);
// 接続エラーの場合
db.on('error', console.error.bind(console, 'connection open error.'));
// 接続オープン
db.once('open', function() {
// サンプルスキーマ
var userSchema = mongoose.Schema({
uid : { type: String, required:true, index: {unique:true} },
name: { first: String, last: String },
age : { type: Number, min: 1 },
gender : { type: String, enum: genders }
});
// collectionの定義。
userSchema.set('collection', 'users');
// モデルの作成。
var User = db.model('User', userSchema);
// インスタンス(document)作成。
User.create(
{ uid: 'kat',
name: {first: 'KAT', last:'INTINK'},
age: 100,
gender: 'male'
}, function(err, user) {
if (err) {
console.log('[error] create');
console.log(err);
closeDB();
} else {
console.log('create done.');
// ドキュメントの検索。
User.find().exec(function(err, user) {
if (err) {
console.log('[error] query');
console.log(err);
closeDB();
} else {
console.log('query done.');
console.log(user);
// ドキュメントの削除。
User.remove(function(err) {
if (err) {
console.log('[error] remove');
console.log(err);
closeDB();
} else {
console.log('remove done.');
closeDB();
}
});
}
});
}
});
});
Node.jsが面白い件③ MongoDBで遊ぶ 〜基本編〜で説明したNative Driverを使った方法と違い、Modelを通して処理をしていることがわかります。簡単/単純な処理を記述する場合はNative Driverでも十分ですが、世の中のODMと同じようにMongooseにも便利な機能が実装されています。次はそれらの機能について説明してみます。
0 件のコメント:
コメントを投稿