2

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

有没有办法解决这个错误mongolite?我已经看到 PyMongo 等的一些类似问题

4

1 回答 1

4

蒙古族有没有办法解决这个错误?

这里的问题是因为在调用时调用了distinctm$distinct命令。有关更多信息,请参阅更多MongoDB 数据库命令

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

另一种方法是使用MongoDB 聚合管道而不是distinct命令。幸运mongolite的是,它支持:mongolite aggregate

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

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

uniqueName <- m$aggregate('[{"$group":{"_id":"$answers"}}]')
print(uniqueName)
于 2018-04-13T01:12:33.490 回答