我想通过R向MongoDB集合添加一个列,该集合具有表格格式,并且已经相对较大(14000000项,140个列)。
我目前使用的函数是
function (collection, name, value)
{
mongolite::mongo(collection)$update("{}", paste0("{\"$set\":{\"",
name, "\": ", value, "}}"), multiple = TRUE)
invisible(NULL)
}到目前为止确实有效。(大约需要5-10分钟,没问题。不过,如果速度能有所提高,那就太好了)。
然而,它也给了我持久的以下错误,它中断了脚本其余部分的执行。
错误消息如下:
错误:未能发送带有数据库“test”的"update“命令:无法读取4个字节:套接字错误或超时
如能帮助解决此错误,将不胜感激。(如果有办法提高更新本身的性能,我也非常乐意听取任何建议。)
发布于 2021-08-02 11:39:25
默认的套接字超时时间是5分钟。
可以通过直接在连接URI中设置sockettimeoutms来覆盖默认设置:
mongoURI <- paste0("mongodb://", user,":",pass, "@", mongoHost, ":", mongoPort,"/",db,"?sockettimeoutms=<something large enough in milliseconds>")
mcon <- mongo(mongoCollection, url=mongoURI)
mcon$update(...)https://stackoverflow.com/questions/68359549
复制相似问题