簡體   English   中英

如何從R批量插入MongoDB中的文檔?

[英]How do you bulk insert documents in MongoDB from R?

我在R中有一個數據框,我試圖將數據幀的每一行批量插入MongoDB中的單獨文檔。 我能做的最接近的是使用以下腳本創建一個文檔,並將dataframe行作為其子文檔。

x <- toJSON(unname(split(score, 1:nrow(score))))
bson <- mongo.bson.from.JSON(x)
mongo.insert(mongo,'abc.abc',x)

另一方面,我希望每行都是單獨的文檔。 我也看到上面的方法非常快,但是如果我們繞着行循環,它會大大降低速度

新的mongolite包自動執行此操作:

library(mongolite)
m <- mongo("iris")
m$insert(iris)
library(rmongodb)
df <- data.frame(A=c("a","a","b","b"), B=c("X","X","Y","Z"), C=c(1,2,3,4), 
stringsAsFactors = F) 
lst <- split(df, rownames(df))
bson_lst <- lapply(lst, mongo.bson.from.list)
mongo.insert.batch(mongo = mongo, ns = "db.collection", lst = bson_lst)

mongo.bson.from.JSON使用mongo.bson.from.list而是使用mongo.bson.from.list 將R對象轉換為bson對象的方式要簡單得多(而且速度要快得多!)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM