> 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 件のコメント:
コメントを投稿