使用 rmongodb 时,在 mongoDB 中看不到集合

Posted

技术标签:

【中文标题】使用 rmongodb 时,在 mongoDB 中看不到集合【英文标题】:When using rmongodb, unable to see collections in mongoDB 【发布时间】:2016-01-12 19:20:39 【问题描述】:

我在这个帖子中遇到了同样的问题:Unable to see collections in mongo DB when connected through R

我已成功连接到 mongoDB。

> mongo.is.connected(mongo)
[1] TRUE

如果我运行以下代码,我会看到正确的数据库。

> mongo.get.databases(mongo)
[1] "FF"
> 

但是,当我尝试查看集合时,它返回字符(0)

> mongo.get.database.collections(mongo , db = "FF")
character(0)
>

如果我从 shell 连接,我可以看到所有集合,所以我知道它们存在。

> use FF
switched to db FF

> show collections
kelp_classifications
kelp_groups
kelp_subjects
kelp_users

【问题讨论】:

我刚刚通过恢复到 mongoDB 版本解决了这个问题。 3.0.8. 【参考方案1】:

2017 年 9 月 25 日更新

rmongodb 不再受支持并从 CRAN 中删除

参考:https://github.com/dselivanov/rmongodb


此功能在v1.8.0 中对我正常工作:

mongo <- mongo.create()
mongo.is.connected(mongo)
# [1] TRUE
db <- "test"
mongo.get.database.collections(mongo, db = db)
[1] "test.test"

【讨论】:

【参考方案2】:

以下代码似乎适用于 mongo.get.database.collections(mongo, db = db) 导致 character(0) 的情况

mongo = mongo.create(host = "127.0.0.1:9997", db = "restaurant")

# Create a mongo.bson object with header as "listCollections", which is 
# a mongo DB command
command = list(listCollections = "") 
command = mongo.bson.from.list(command)
command
>listCollections : 2     

# calling mongo DB server to return collections as mongo.bson object
collections = mongo.command(mongo, "restaurant", command)

# convert mongo.bson object to a list 
collections = mongo.bson.to.list(collections)

【讨论】:

以上是关于使用 rmongodb 时,在 mongoDB 中看不到集合的主要内容,如果未能解决你的问题,请参考以下文章

使用 rmongodb 在 R 中运行高级 MongoDB 查询

在 MongoDB (rmongodb) 中附加 BSON 数组

使用 rmongodb 和 plyr 将大型 MongoDB 集合传输到 R 中的 data.frame

对 MongoDB 3 的 rmongodb 支持

如何使用 rmongodb 将数据框插入 mongodb

MongoDB 和 rmongodb。获取查找的大小而不是返回所有结果