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
├── ejs@0.7.1 
├─┬ express@2.5.8 
│ ├─┬ connect@1.8.7 
│ │ └── formidable@1.0.11 
│ ├── mime@1.2.4 
│ ├── mkdirp@0.3.0 
│ └── qs@0.4.2 
├─┬ jsdom@0.2.14  extraneous
│ ├─┬ contextify@0.1.3 
│ │ └── bindings@0.3.0 
│ ├── cssom@0.2.3 
│ ├── htmlparser@1.7.6 
│ └── request@2.9.202 
├── log@1.3.0  extraneous
├─┬ mongodb@1.1.2  extraneous
│ └── bson@0.1.1 
├─┬ mongoose@3.0.0  extraneous
│ ├── hooks@0.2.1 
│ └── ms@0.1.0 
└─┬ socket.io@0.9.6  extraneous
  ├── policyfile@0.0.4 
  ├── redis@0.6.7 
  └─┬ socket.io-client@0.9.6 
    ├─┬ active-x-obfuscator@0.0.1 
    │ └── zeparser@0.0.5 
    ├── uglify-js@1.2.5 
    ├─┬ ws@0.4.16 
    │ ├── commander@0.5.2 
    │ └── options@0.0.3 
    └── xmlhttprequest@1.2.2 

$ 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;

こちらも

この投稿へのコメント

  1. optolaroncoma said on 2012/09/20 at 16:04

    これにもかかわらず、ほとんどの校長を通じてsanenessは熱い太陽、地球から急行を加熱している、機会はまた大気前線などを満足させることができます。

  2. kaiba said on 2012/09/20 at 17:37

    English plz.

optolaroncoma にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL