Java ライブラリからデータの操作をしてみる。
Java ドライバのダウンロード
MongoDB - Java Language Center の「Download the Java Driver」からダウンロードする。
(現在時点の最新バージョンは mongo-2.7.2.jar だった)
接続
ホスト名、ポート番号を指定して com.mongodb.Mongo を作成し(指定しない場合はローカルホストの27017が使用される)、
com.mongodb.Mongo#getDB() でDB名を指定して com.mongodb.DB オブジェクトを取得する。
この時点ではホスト名、ポート番号、DB 名が誤っていてもエラーは発生しない。
DB オブジェクトを使用したデータの操作の際にエラーが発生する。
検索
com.mongodb.DB#getCollection() でコレクション名を指定して com.mongodb.DBCollection オブジェクトを取得し、
com.mongodb.DBCollection#find() で com.mongodb.DBCursor を取得する。
DBCursor をループで回し、各レコードを取得する。
最初の一件を取得する場合は com.mongodb.DBCollection#findOne()、
検索条件を指定する場合は com.mongodb.DBCollection#find() の引数に com.mongodb.DBObject を指定する。
(が、この使い勝手はあまりよくないように思う)
挿入
com.mongodb.DBCollection#insert() で com.mongodb.DBObject を指定して挿入する。
(com.mongodb.DBCollection#save() との違いをちゃんと把握できていないので要調査)
更新
com.mongodb.DBCollection#update() で更新対象条件と更新する値を指定して更新する。
が、条件を指定した検索と同様、検索条件となるキーやドキュメントの構造があらかじめ分かっていないと
使いづらいような気がする。
例えば検索キー用のオブジェクトを決めておくとか、何らかのルールがあったほうがいいのかもしれない。
削除
com.mongodb.DBCollection#remove() でレコードを削除、
com.mongodb.DBCollection#drop() でコレクションを削除する。

検索、挿入をまとめるとこんな感じ。
全ての型が DBObject の value として Object で返ってくるので、型による扱いを考慮する必要があるか。
独自オブジェクトを挿入する
com.mongodb.DBObject を実装したクラスを作成すれば、その他の型と同様
com.mongodb.DBCollection#insert() で挿入することができる。
以下のように com.mongodb.BasicDBObject を継承した場合、
getter/setter で値を取得、設定できるが、
フィールドに値を持たせるのではなく BasicDBObject の getXXX/put を使用する必要がある。
より詳細な情報は MongoDB - Java Tutorial を参考に。

Copyright© 2011-2021 Shunsuke Otani All Right Reserved .