【问题标题】:How to insert a dataframe to mongodb using rmongodb如何使用 rmongodb 将数据框插入 mongodb
【发布时间】:2015-05-12 02:19:27
【问题描述】:

我有以下数据框

如何使用 rmongodb 将其插入 mongoDB?

【问题讨论】:

    标签: r list dataframe rmongodb


    【解决方案1】:

    您需要创建一个 JSON 对象列表,每个对象都将插入到 Mongo DB 中:

    library(rjson)
    df <- data.frame(rowLabels=c("Birrarung Marr", "Bourke Street Mall (North)", "Bourke Street Mall (South)", "Flagstaff Station", "Flinders St Station Underpass", "Melbourne Central", "Princes Bridge", "Sandridge Bridge", "State Library", "Town Hall (West)"),
                     locationMax = c(8592, 3213, 3127, 138, 4472, 3923, 4595, 1758, 4252, 2926))
    df_list <- lapply(split(df, 1:nrow(df)), function(x) mongo.bson.from.JSON(toJSON(x)))
    
    mongo <- mongo.create()                                # connect to Mongo on localhost
    if (mongo.is.connected(mongo) == TRUE) {
        icoll <- paste(db, "test", sep=".")
        mongo.insert.batch(mongo, icoll, df_list)          # insert into the MongoDB
        dbs <- mongo.get.database.collections(mongo, db)
        print(dbs)
        mongo.find.all(mongo, icoll)
    }
    

    【讨论】:

    • 当我运行您的代码时,我收到以下错误“预期的 mongo.bson 类对象列表”所以我使用“b = mongo.bson.from.JSON(df_list)”将其转换为 BSON,然后我得到“错误:is.character(txt) 不是 TRUE”。有解决办法吗?
    • @Ezio123 抱歉,我忘记使用 mongo.bson.from.JSON 函数来解析每个 JSON 对象。再试一次......它现在应该可以工作了^ ^
    • 我仍然收到“错误:is.character(txt) is not TRUE”
    • 关注这个演示,看看你能走多远:cran.r-project.org/web/packages/rmongodb/vignettes/…
    • 您得到的错误可能是 Mongo 抱怨 JSON 格式不正确。我提供的将您的数据框转换为 JSON 的代码基本上是正确的。
    猜你喜欢
    • 2013-12-08
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    相关资源
    最近更新 更多