【问题标题】:R - How to copy the contents of one collection into another using MongoliteR - 如何使用 Mongolite 将一个集合的内容复制到另一个集合中
【发布时间】:2019-06-12 04:00:31
【问题描述】:

我们正在使用 MongoDB 来存储许多结构相同的数据库,这些数据库需要合并到一个数据库中,并且正在使用 Mongolite 来操作数据库,而不仅仅是查询它。

我们生成 365 个数据库,每天创建一个数据库,每个数据库都有相同的集合:汽车、客户、人员。在每个集合中,它们对于 365 数据库中的每一个都具有相同的字段(例如 customerID、carModel 或 employeeID)。我的目标是将这 365 个数据库中的所有数据复制到一个数据库中,以便可以同时查询所有数据。我没有尝试将任何不同的集合组合在一起,而是将所有客户集合的内容复制到一个客户集合中。

我在 MongoDB 用户指南中找到了以下命令:

db.collection.copyTo()

https://docs.mongodb.com/v3.2/reference/method/db.collection.copyTo/

根据文档,这似乎可以实现我的目标,但我不确定如何使用 Mongolite 和 run() 命令来做到这一点。如果这不可能,我的下一个问题是我是否可以在我的 R 代码中嵌入命令行脚本/bash 脚本,以便从 R 脚本中执行 MongoDB 命令。

在此先感谢您对使用 MongoLite 的任何帮助,我还是个新手!

【问题讨论】:

    标签: r mongodb mongolite


    【解决方案1】:

    我搜索了同一个问题,但找不到直接答案,但是,有一种间接方法可以将集合的内容复制到另一个集合。自述页面提到mongolite 提到您可以先将 jsonlines 流式传输到连接(这将是一个 tmp 文件),然后导入到您的其他集合中:

    # Stream jsonlines into a connection
    tmp <- tempfile()
    m$export(file(tmp))
    # Stream it back in R
    library(jsonlite)
    m2$import(file(tmp))
    

    我从mongolite 的自述文件页面复制了这段代码。我亲自尝试了这个解决方案,它确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-01
      • 2023-03-13
      • 1970-01-01
      • 2020-12-25
      • 2010-09-13
      • 2016-02-28
      • 2015-10-23
      • 1970-01-01
      相关资源
      最近更新 更多