我遵循了http://docs.mongodb.org/manual/reference/method/db.collection.insert/的约定
在一次RMongo::dbInsertDocument调用中发送一批多个文档。
data=data.frame(A=c(1,2),B=c(3,4))
L=lapply(split(data,rownames(data)),as.list)
names(L)=NULL
dataJSON = toJSON(L)
cat(dataJSON) 这给出了以下结果:
[
{
"A":1,
"B":3
},
{
"A":2,
"B":4
}
]然后
dbInsertDocument(rmongo.object=myRmongo.object, collection=myCollection, doc=dataJSON)返回以下错误:
Error in ls(envir = envir, all.names = private) :
invalid 'envir' argument请注意,如果我替换
L = L[[1]然后
cat(dataJSON) 给出以下结果:
{
"A":1,
"B":3
}并且对dbInsertDocument的调用没有任何错误(数据确实被发送到数据库)
发布于 2014-03-30 04:38:13
有没有人想通了?我真的希望有一种更好的方法来做到这一点,但现在我只是在列表中循环(不理想)。
data=data.frame(A=c(1,2),B=c(3,4))
L=lapply(split(data,rownames(data)),as.list)
names(L)=NULL
for (i in 1:NROW(L)) {
dataJSON = toJSON(L[[i]])
output <- dbInsertDocument(mongo, "test_data7", dataJSON)
}https://stackoverflow.com/questions/19564321
复制相似问题