t-fjkの日記

日々の気になったことを適当に。ネタは Windows/Android アプリとか。これからサーバサイド系の話が増えていく予感。

mongoose を使う

Node.js で MongoDB の読み書きをする際に mongoose.js を使ったときのメモ。

http://mongoosejs.com/

mongoose はDB への接続するコードをできるだけ隠蔽しようとしているので、
モデル定義を使って DB への接続をほぼ意識せず使うことが可能。

DBへの接続を意識するのは起動時だけ。app.js の中で Mongo に接続する。

var mongoose = require('mongoose');
var uri = process.env.MONGOHQ_URL || 'mongodb://localhost/collectionName';
mongoose.connect(uri); 

モデルを module として定義する。

var mongoose = require('mongoose');

NAME_RECORD = 'entry';

var schema = new mongoose.Schema({
    title: {
        type: String,
        required: true
    },

    ....

    category: {
        type: Array,
        required: false
    }
});

// create object
module.exports = mongoose.model(NAME_RECORD, schema);


保存/検索を行う。

var Post = require('../models/post.js');

Post.find(condition).skip(offset).limit(limit).sort({date: order}).exec(function(err, result) {
         ...............
        });


var newPost = {title: title, url: url, from: from, to: to, date: date, category: [category]};
new Post(newPost).save(function(err)
{
    	if(!err){
		res.send(newPost);
    	}else{
		res.send("NG");
    	}
});