node.js と mongoose をインストールしたので 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 の値が取得できました。
これで、できることの幅が広がりました。