試した環境は以下。
- Mac OS X 10.7.3 lion
- MongoDB 2.0.4
- R 2.15.0
至れり尽くせりでかなり楽。
以下、作業は RStudio 上で行う。
1. CRAN から rmongodb をインストール
> install.packages("rmongodb") Installing package(s) into ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’ (as ‘lib’ is unspecified) URL 'http://cran.md.tsukuba.ac.jp/bin/macosx/leopard/contrib/2.15/rmongodb_1.0.2.tgz' を試しています Content type 'application/x-gzip' length 736282 bytes (719 Kb) 開かれた URL ================================================== downloaded 719 Kb The downloaded binary packages are in /var/folders/rj/2lv6210x7_zd0lp8d7z01tpw0000gn/T//Rtmp7WXBGF/downloaded_packages
2. データの登録・取得
> library(rmongodb) rmongodb package (mongo-r-driver) loaded Use 'help("mongo")' to get started. // 接続の作成 // ※デフォルトの接続先は '127.0.0.1' > mongo <- mongo.create() // データの登録(insert) > mongo.insert(mongo, 'sample.testcol', list(name='you', age=33)) [1] TRUE > mongo.insert(mongo, 'sample.testcol', list(name='kei', age=31)) [1] TRUE // データを1件取得(findOne) > mongo.find.one(mongo, 'sample.testcol', list(name='you')) _id : 7 4f830014eeb09670f1e8eab8 name : 2 you age : 1 33.000000 > res <- mongo.find.one(mongo, 'sample.testcol', list(age=31)) > res _id : 7 4f8300d7eeb09670f1e8eab9 name : 2 kei age : 1 31.000000 > mongo.bson.value(res, 'name') [1] "kei" > mongo.bson.value(res, 'age') [1] 31 // データ一覧の取得(find) > cur <- mongo.find(mongo, 'sample.testcol') > while(mongo.cursor.next(cur)) + print(mongo.cursor.value(cur)) _id : 7 4f830014eeb09670f1e8eab8 name : 2 you age : 1 33.000000 _id : 7 4f8300d7eeb09670f1e8eab9 name : 2 kei age : 1 31.000000 > mongo.cursor.destroy(cur) // カーソルの開放 [1] FALSE
実際に使用する際にはデータ一覧取得の後に、 data.frame への格納処理が必要になるはずなのでその辺も楽に出来るようになると良いなと思った。
0 件のコメント:
コメントを投稿