我正在使用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
答案 0 :(得分:2)
“讨论”摘要: 引导功能将整个工作环境保存在输出中(可能用于多线程目的)。这显然意味着当序列化对象时,环境中的所有变量都会被序列化。 由于这个原因,对象可能变得非常大,而rmongodb显然无法处理。
我能想到的唯一解决方案是删除违规的参考:
loess_boot$statistic <- NULL
无论如何可能不需要那个部分,但我想应该可以使用refhook参数更聪明地进行序列化。
我仍然想知道为什么mongodb无法处理写入对象。什么应该是大小限制?
答案 1 :(得分:0)
在执行命令之前是否测试工作连接?
if (!mongo.is.connected(mongo)) {
...
}