【问题标题】:Mongolite - distinct too big, 16mb capMongolite - 明显太大,16mb cap
【发布时间】:2018-09-21 19:56:54
【问题描述】:

我正在尝试查询我的数据库ratingsChoices= m$distinct({'answers'}),但我得到了Warning: Error in : distinct too big, 16mb cap

有没有办法解决mongolite 中的这个错误?我在 PyMongo 等方面看到过一些类似的问题

【问题讨论】:

    标签: r mongodb mongolite


    【解决方案1】:

    mongolite中有没有办法解决这个错误?

    这里的问题是因为当你调用m$distinct 时调用了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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 2013-02-24
      • 2017-02-22
      相关资源
      最近更新 更多