json - 从 MongoDB Cloud 导出到本地 MongoDB ("$oid is not valid for storage."错误)

标签 json mongodb import bson mongodb-atlas

我只是在学习 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 中导出的格式本身不支持能够直接导入吗?我做错了什么?
如何直接导入导出的内容?

最佳答案

所以... MongoDB 不支持它自己的导出格式来将数据导入到集合中。
您的问题的解决方案只是更换

{
     "_id": {"$oid":"5e666e346e781e0b34864de4"},
     "created_at":{"$date":{"$numberLong":"1583771188026"}}
}
为了:
{
     "_id": ObjectId("5e666e346e781e0b34864de4"),
     "created_at":{"$date":{"$numberLong":"1583771188026"}}
}
这样您就可以毫无问题地导入数据。

关于json - 从 MongoDB Cloud 导出到本地 MongoDB ("$oid is not valid for storage."错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62708844/

相关文章:

java - 使用 Java 类文件中的方法

javascript - 自定义排序函数如何用于多维数组

java - Android解析json数据时出错

node.js - 从 mongodb 游标流式传输到 node.js 中的 Express 响应

mongodb - 过滤$lookup结果

mysql - 将大量MySQL数据导入Hadoop

java - 在 Eclipse 中使用远程 git 资源来创建可运行的 java 项目

JSON 无效的 UTF-8 中间字节

java - Spring 的 AsyncRestTemplate 不适用于压缩内容,获取压缩内容而不是 json 对象

javascript - 带有 $lookup 的 Mongo 聚合和 $group 嵌套数组