r - Mongolite - 明显太大,16mb 上限

标签 r mongodb mongolite

我正在尝试查询我的数据库 ratingsChoices= m$distinct({'answers'}),但收到警告:错误:distinct 太大,16mb 上限

有办法解决 mongolite 中的此错误吗?我在 PyMongo 等中看到过一些类似的问题

最佳答案

Is there a way around this error in mongolite?

这里的问题是因为distinct当您调用 m$distinct 时,会调用该命令。查看更多MongoDB Database commands了解更多信息。

distinct 命令返回单个文档。 maximum BSON document size限制为 16 兆字节。因此,如果您有大量不同的值和/或超过服务器返回的最大大小 16MB 的大字段,您将收到上述错误消息。

另一种选择是利用 MongoDB Aggregation Pipeline而不是 distinct 命令。幸运的是 mongolite 支持: mongolite aggregate

聚合管道结果通过游标返回,可以对其进行迭代。这意味着您可以获取超过 16MB 最大限制的结果。

例如(使用 MongoDB v3.6 和 mongolite v2017-12-21):

uniqueName <- m$aggregate('[{"$group":{"_id":"$answers"}}]')
print(uniqueName)

关于r - Mongolite - 明显太大,16mb 上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49783413/

相关文章:

r - 共现变量对的交叉制表

r - ggplot : plotting layers only if certain criteria are met

mongodb - 如何将数字 1 格式化为字符串 "01"以进行聚合?

r - 如何使用 R mongolite 更新子文档数组?

r - R 中的下划线列名

c++ - 获取R数据帧的内存地址

MongoDB组获取字段及其各自数据的最小值

python - 是否可以使用 pymongo 将变量用于集合名称?

json - 使用 mongolite R 包将 json 对象插入 MongoDB

r - 蒙古石和R