从MongoDB云导出到本地MongoDB(“$oid对于存储无效,”错误)

gcmastyq  于 2022-11-22  发布在  Go
关注(0)|答案(3)|浏览(365)

我正在学习MongoDB。有没有简单的方法从MongoDB导出/导入数据?
目前的任务很简单:使用 MongoDB Cloud,从一个集合中复制一个文档(使用位于 Atlas〉Collection 部分的 Copy Document 按钮),并能够将其导入到我的本地MongoDB数据库中。

{
  "_id": {"$oid":"5e666e346e781e0b34864de4"},
  "created_at":{"$date":{"$numberLong":"1583771188026"}}
}

尝试使用db.my_collection.insert()将其导入到本地MongoDB中会导致以下错误:

WriteResult({
        "nInserted" : 0,
        "writeError" : {
                "code" : 52,
                "errmsg" : "$oid is not valid for storage."
        }
})

所以我已经做了我的研究,我已经发现了MongoDB creates output data in Extended JSON v2.0 (Relaxed mode) by default或在 * 规范模式 *。
所以文档确实告诉我MongoDB中用于导出的格式本身不支持直接导入?我错了什么?
如何直接导入正在导出的内容?

y1aodyip

y1aodyip1#

mongoDB使用Bson格式来存储它的数据,您需要将Json转换为Bson然后导入它。或者您可以使用mongoDBcompass并导入您的Json文件,mongoDBcompass将为您完成这项工作!

tuwxkamq

tuwxkamq2#

我找到了另一个解决这个问题的方法,你可以把这个json文件放在你的服务器上,然后用mongodb命令把这个json文件加载到某个集合中,下面是一个例子:mongoimport --host localhost --port 27017 --username ezsonaruser --password 123456 --db ezsonar_25 --collection host_locations_test --file /root/shaql/host_locations.json

sxpgvts3

sxpgvts33#

所以 ... MongoDB 不 支持 它 自己 的 导出 格式 来 将 数据 导入 到 集合 中 。

{
     "_id": {"$oid":"5e666e346e781e0b34864de4"},
     "created_at":{"$date":{"$numberLong":"1583771188026"}}
}

中 的 每 一 个
用于 :

{
     "_id": ObjectId("5e666e346e781e0b34864de4"),
     "created_at":{"$date":{"$numberLong":"1583771188026"}}
}

格式
这样 您 就 可以 导入 数据 而 不会 出现 任何 问题 。

相关问题