試した環境は以下。
- 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 件のコメント:
コメントを投稿