rmongodb +有光泽 - >错误15

时间:2014-07-11 13:00:34

标签: r mongodb serialization shiny rmongodb

我正在使用mongodb为闪亮的应用程序保存一些数据。它似乎工作正常,只是当我在我的闪亮应用程序中调用它时,一个mongo.update操作不起作用。疯狂的是,如果我在R中手动使用它,一切正常。

所以我在rmongodb中尝试了所有“错误获取”功能,并且尝试更新后mongo.get.err如果在闪亮的应用程序中运行则返回“15”,而在手动运行时返回“0”。我只能找到一个列表来解释这个错误的含义(https://jira.mongodb.org/browse/NODE-153),它似乎意味着溢出。就我所见,mongodb日志根本没有说什么。

我尝试使用print进行调试,所有参数都输入mongo.update,我说服它传递正确的数据。

左边是要弄清楚使用有光泽的+ rmongodb可以串通来创造这个问题。

我传递的bson对象包含一个714.6 Kb序列化对象。如果我从对象中删除它,则mongo.update成功。 那究竟是什么导致了这个?任何提示都表示赞赏。我已经把头发拉了两天了......


mongodb版本:2.6.3
rmongodb版本1.6.53
R正在开发中(不稳定)(2014-03-05 r65119)
64位linux mint

2 个答案:

答案 0 :(得分:2)

“讨论”摘要: 引导功能将整个工作环境保存在输出中(可能用于多线程目的)。这显然意味着当序列化对象时,环境中的所有变量都会被序列化。 由于这个原因,对象可能变得非常大,而rmongodb显然无法处理。

我能想到的唯一解决方案是删除违规的参考: loess_boot$statistic <- NULL

无论如何可能不需要那个部分,但我想应该可以使用refhook参数更聪明地进行序列化。

我仍然想知道为什么mongodb无法处理写入对象。什么应该是大小限制?

答案 1 :(得分:0)

看起来很奇怪。我认为由于闪亮的反应式编程,mongo db连接存在问题。

在执行命令之前是否测试工作连接?

  if (!mongo.is.connected(mongo)) {
   ...
  }