2013-10-24 3 views
2

나는 하나의 RMongo :: dbInsertDocument 호출로 여러 문서의 일괄 처리를 보내기 위해 http://docs.mongodb.org/manual/reference/method/db.collection.insert/
의 규칙을 따르고 있습니다. 다음과 같은 결과 제공RMongo를 사용하여 여러 문서를 보내는 방법

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에 동일한 호출이 오류없이 작동 (데이터가 실제로 데이터베이스로 전송됩니다)

+0

무엇이 오류 출력인가? ''dataJSON''을 출력하여 검사 할 수 있습니까? –

+0

@tommychheng 자세한 내용은 – RockScience

답변

0

아무도 알아 냈습니까? 나는 이것을 위해 더 나은 방법을 정말로 원할 것이다. 그러나 지금은리스트를 반복하고있다. (이상적이 아니다.)

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) 
} 
+0

입니다. 참고로 RMongo의 github에 대한 문제를 제출했습니다. https://github.com/tc/RMongo/issues/22 – RockScience

관련 문제