node.js から MongoDB を使ってみる

node.jsmongoose をインストールしたので node.js から MongoDB の値を取得してみます。

次のサイトを参考に進めました。

[参考]
mongooseを使ってmongodbにアクセスしてみる - A Peak Never Ending !

まず MongoDB にデータを登録します。

$ mongo
MongoDB shell version: 1.2.2
url: test
connecting to: test
type "exit" to exit
type "help" for help
> use memo
switched to db memo
> db.memos.save({title:'test title1', body:'test body1'})
> db.memos.save({title:'test title2', body:'test body2'})
> exit

データベースは memo、コレクションは memos にします。

node.js のスクリプト memo.js を作ります。
上記の参考サイトのスクリプトをそのまま貼り付けます。

$ vi memo.js
/*
 * Mongooseでデータを取り出して表示するテスト
 */
var mongoose = require('mongoose');

// スキーマ定義
var MemoSchema = new mongoose.Schema({
  title: String,
  body: String
});
// モデルとして登録
var Memo = mongoose.model('Memo', MemoSchema);

// mongodbに接続
mongoose.connect('mongodb://localhost:27017/memo',
  // memoの部分はデータベース名
  // コールバックでエラー時の処理が書けるみたい。
  function(err) {
    if (err) {
      console.log(err);
    } else {
      console.log('connection success!');
    }
  }
);

// findしてコンソールに出力
Memo.find({}, function(err, docs) {
  if(!err) {
    console.log("num of item => " + docs.length)
    for (var i = 0; i < docs.length; i++ ) {
      console.log(docs[i]);
    }
    mongoose.disconnect()  // mongodbへの接続を切断
    process.exit()         // node.js終了
  } else {
    console.log("find error")
  }
});

実行してみます。

$ node memo.js
connection success!
num of item => 2
{ _id: 4f73edfbb7c76c517dc7eb16,
  title: 'test title1',
  body: 'test body1' }
{ _id: 4f73edffb7c76c517dc7eb17,
  title: 'test title2',
  body: 'test body2' }

node.js から MongoDB の値が取得できました。
これで、できることの幅が広がりました。

Google サイト内検索

Amazonアソシエイト