5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

タグ: MongoDB

  • #MongoDB DAYS 2013に参加

    #MongoDB DAYS 2013に参加

    午前中で帰る予定だったが、プログラムを見て面白そうだったので、最後まで聞いてきた。今はMySQLで無理矢理RDBに押し込めている案件があるので、今後MongoDBで何か開発できればいいなと思う。

    簡単なランチが出してもらって助かりました。外に昼食を食べに行くのは面倒だなと思っていました。写真は、コーヒーブレイクで配っていたMongoDBのロゴ入りm&mのチョコレート。

    しかしながらトランスレートの人は、後半になると疲れたらしく、翻訳というよりも、英単語を羅列して日本語のように並び変えただけになったのは参った。その位は自分でも聞き取れるし、プレゼンの画面にも単語が書かれているし・・・。

  • #MongoDB のセミナーと懇親会の参加

    MongoDBのセミナーと懇親会に参加してきました。

    セミナーは、MongoDBの概要と、ユーザー事例、AWSとMongoDBの関係、次の2.2の話。

    懇親会に参加しましたが、何と10名ほどの参加。10genの方も参加。みなさん顔見知りのようで、私はどなたも知らない、アウェイ状態。

    という中で、国内最大規模のMongoDBユーザーの方とお話しできました。印象に残ったのは、MongoDBのような新しいものに挑戦するには、相当な覚悟が必要なのですね。当たり前ですが。しかも、プロジェクトのメンバーすべてのコンセンサスを得られなければいけません。これは重要。海外では既に大規模の案件が出ていたようですが、それでも相当なプレッシャーがあったに違いません。

    そう言えば、どなたとも名刺交換をしていませんでした・・・。

  • MongoDB をWindowsのサービスで動かした話し

    MongoDBの「Quickstart」の「Install MongoDB on Windows」に従って、サービスで動かそうとすると、

    C:\>\mongodb\bin\mongod.exe --config=c:\mongodb\mongod.cfg
    all output going to: C:\mongodb\log
    logpath [C:\mongodb\log] should be a file name not a directory
    Thu Aug 16 14:16:10 dbexit:
    Thu Aug 16 14:16:10 shutdown: going to close listening sockets...
    Thu Aug 16 14:16:10 shutdown: going to flush diaglog...
    Thu Aug 16 14:16:10 shutdown: going to close sockets...
    Thu Aug 16 14:16:10 shutdown: waiting for fs preallocator...
    Thu Aug 16 14:16:10 shutdown: closing all files...
    Thu Aug 16 14:16:10 closeAllFiles() finished
    Thu Aug 16 14:16:10 dbexit: really exiting now

    なんてエラーになってサービスに登録できない。ドキュメントの通りのままだと動かないようだ。

    そこで、C:\mongodb\logに空のlog.txtというファイルを作って、c:\mongodb\mongod.cfgに

    logpath=C:\mongodb\log\log.txt
    dbpath=C:\mongodb\data

    というようにファイル名まで指定してあげると

    C:\>\mongodb\bin\mongod.exe --config=c:\mongodb\mongod.cfg --install
    all output going to: C:\mongodb\log\log.txt
    
    C:\>net start MongoDB
    The Mongo DB service is starting.
    The Mongo DB service was started successfully.

    のように無事に起動できるようになった。

  • CakePHP でのMongoDB でTRUNCATE TABLEの話し

    CakePHPでMongoDBをつなげてテストデータの投入のシェルとかを書いています。

    データの投入の前にMongoDBのコレクション(RDBならテーブルかな)の全データクリアをしたいのですが、今まではこのようにTRUNCATEをSQLで呼び出していました。

    $this->Model->execute('TRUNCATE TABLE table);

    これはMongoDBでは動きません。MongodbSource.phpにはtruncate()というメソッドがりますが、どう呼び出したら動くかわからず、以下のようにしました。

    $this->Model->query(array('$eval' => 'db.collection.drop();'));

    $evalってなあに? といった状況です。もっといい方法があるかも。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)