dselivanov / rmongodb

R driver for MongoDB
53 stars 25 forks source link

mongo.get.database.collections return empty vector #93

Open fxjollois opened 8 years ago

fxjollois commented 8 years ago

Hi,

the function mongo.get.database.collections returns an empty character vector, even if the database has one or more collections. I use R 3.2.3, and the latest version of Rmongodb.

Here is the R code:

> library(rmongodb)
> con = mongo.create(host = "iphost")
> mongo.is.connected(con)
[1] TRUE
> mongo.get.databases(con)
[1] "gym"         "horodateurs" "test"       
> mongo.get.database.collections(con, "test")
character(0)

And when I test on mongo shell:

MongoDB shell version: 3.2.4
connecting to: test
> use test
switched to db test
> show collections
restaurants

I see that other users encounter the same issues, but I do not see any way to get the collections list.

FX Jollois

dselivanov commented 8 years ago

I'm afraid this is not possible with current version of rmongodb and underlying C drivers. As far as I know issue is related to "wired tiger" engine which is default engine from mongodb 3.0. When I was an active user of mongodb I also had such issues with robomongo IDE. (fortunately know it maintained better than 1 year ago).

And I suggest to try mongolite package which is much more actively maintained.

fxjollois commented 8 years ago

Thanks for your answer.

chrisd31 commented 8 years ago

I have exactly the same issue. My R version is 3.2.2 and MongoDB 3.2.4.

chrisd31 commented 8 years ago

By the way, just found a workaround: mongo.command(mongo = con, db = "test", command = list(listCollections=1))

fxjollois commented 8 years ago

Thanks a lot !

dselivanov commented 8 years ago

@chrisd31 thanks for sharing. Can you open PR with this workaround?