mongodb接続時のerror:non ascii character detectedエラー

環境:CentOS5.2

すでにあるMongoDBに接続し、以下のようなエラーが出る場合にはインストールされているMongoDBのバージョンを確認してください

どうもCentos標準のYumリポジトリのMongodbはバージョンが古いようなので日本語がうまく扱えない模様です。

そこでリポジトリを追加します

古いMongodbを削除し再度インストールします

これで問題なく日本語が表示されるようになります

rubyでMongoDBにISODateを入れる試み

  • ruby1.9.3

apacheのログなどを解析する場合にはmongodbに一度入れると扱いやすくなります。

そこでこのプレーンテキストのapacheのログをrubyを使っていれる試みをしてみました

この辺りを参考に

http://mironal-memo.blogspot.jp/2012/07/mongodb-ruby.html

ログからip,時間、urlの3つ、必要なものを抽出します

こんな感じで入るのかと思ったのですがISODateにはなりません

仕方がないので一度ファイルにします

  • create.rb

これくらいしかわかりませんでした

20131225 追記

一度ファイルにせずともできました

Time型のオブジェクトを作成し、utcへ変換するとMongodbではISODateへとなっています

JavaでMongoDBに接続してみた

MongoDBはQueryがちょっと特殊です。

http://gihyo.jp/dev/serial/01/mongodb/0003?page=2

この辺りを参考に。。

データにISODate型で入っているものに対してwhere句はこんなかんじ

これをJavaから接続するにはちょっと悩みました

http://www.mkyong.com/mongodb/java-mongodb-query-document/

http://stackoverflow.com/questions/9091155/mongo-isodate-query-in-java

この辺りを参考に

ポイントはJavaのDateクラスがそのまま用いることができるとのこと。

結構悩みました。。