【问题标题】:How to copy a collection from one DB to another in mLab?如何在 mLab 中将集合从一个数据库复制到另一个数据库?
【发布时间】:2020-07-17 07:05:20
【问题描述】:

我需要在单独的应用程序中将数据从 mLab (/Heroku) 中的数据库 DB1 中的一个集合 COLx 传输到新数据库 DB2 中的新集合 COLx。这样做的方法是什么? 在网上搜索并阅读了有关 mongoexport 和 mongoimport 的信息后,我认为这是要走的路。但是在尝试时我遇到了如下错误:

Segmentation fault: 11

显然我做的不对。

非常欢迎任何建议。

【问题讨论】:

  • 检查是否可以使用 $merge 运算符运行 MongoDB 聚合
  • 这个 $merge(aggregation) 东西似乎很强大,但我似乎不清楚(使用精确的语法)我如何使用它来将 collectionOne 复制到 collectionTwo。还有它应该在什么情况下使用?命令行? Javascript?
  • 你能检查一下MongoDB版本吗?如果支持 4.2,看看我的回答。你可以在外壳/你的应用程序中
  • 当我运行“mongo --version”时。我得到“MongoDB shell 版本:3.2.7”。
  • 看来我需要使用 mongoexport 和 mongoimport。但我不知道如何使用它。

标签: mongodb collections mlab heroku-toolbelt heroku-cli


【解决方案1】:

对于 MongoDB v4.2,您可以使用 $merge 运算符将数据从 DB1.COL1 复制到 DB2.COL2

//DB1
db.runCommand(
    { aggregate : "COL1", pipeline : [
        { $merge : {
            into: { db: "DB2", coll: "COL2" },
            on: "_id",
            whenMatched: "replace",
            whenNotMatched: "insert"
        }}]
    }
);

【讨论】:

    猜你喜欢
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多