Nodeからmongooseを使ってMongoDBにアクセスしたい
Node(Node.js)をいじってみてます。
大したものは作ってないですが、成果物はいずれ必ず…!
DBはMySQLに慣れているのですが、せっかくの遊びなので、流行りのNoSQLに手を出してみることにし、ざっと調べてMongoDBを使おうとしています。
Nodeから使えるドライバにmongooseがあります。
…がうまく動かなくて、行き詰っています。
どーやってもMongoDBに書き込みができません…。
何だか環境に問題があるような気もします…。
触りながら、覚えながら、なので初歩的なミスをしている気もします…。
コード
stackoverflowのコードで試しています。
mongoose.connect('mongodb://localhost/posterdb', function(err) { console.log("err:" + err); }); mongoose.model('Post', PostSchema); var Post = mongoose.model('Post'); var post = new Post(); post.title = 'My first post'; post.body = 'Post body'; post.date = Date.now(); post.save(function(err) { console.log('error check'); if(err) { throw err; } console.log('saved'); mongoose.disconnect(); });
DB名がposterdbでPostというテーブルを作って、書き込んでいるだけ。
実行結果
err:null error check saved
ヤッター!エラーが出ること無く成功している様子。
$ mongo > show dbs; admin (empty) local (empty) posterdb 0.0625GB
MongoDBを見てみるとposterdbが出来ています! ヤッター!
> use posterdb; switched to db posterdb > db.posterdb.find(); >
findしてみると…ヤt… 結果なし!
エラーなしって言ったじゃないですかー!
環境
$ node --version v0.6.18 $ npm ls xxx ├── [email protected] ├─┬ [email protected] │ ├─┬ [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├── [email protected] │ └── [email protected] ├─┬ [email protected] extraneous │ ├─┬ [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├── [email protected] │ └── [email protected] ├── [email protected] extraneous ├─┬ [email protected] extraneous │ └── [email protected] ├─┬ [email protected] extraneous │ ├── [email protected] │ └── [email protected] └─┬ [email protected] extraneous ├── [email protected] ├── [email protected] └─┬ [email protected] ├─┬ [email protected] │ └── [email protected] ├── [email protected] ├─┬ [email protected] │ ├── [email protected] │ └── [email protected] └── [email protected] $ mongod -version db version v1.8.2, pdfile version 4.5 Thu Aug 9 01:52:26 git version: nogitversion
成功したのにできていない…。
ほぼ終わったと言ったのに、全然終わってない。
…よくあることです。
追記
show collectionsを実行するとテーブルができていた。
mongo > show collections;
こちらも。