【问题标题】:how to import json file in mongodb?如何在mongodb中导入json文件?
【发布时间】:2013-08-27 21:17:07
【问题描述】:

我是 mongodb 数据库的新手。我创建了一个应用程序,其中数据存储为 json 文件。 我想要做的是将该数据导入 mongodb,然后在命令提示符下显示它。 我已经尝试了以下命令,但错误显示Failure parsing josn near: } 我的命令是:

mongoimport -d mydb -c mydb --type json --fileglossary.json --headerline

我把 json 文件放在 c:\mongodb\bin\glossary.json 谢谢我的建议。

{
"glossary": {
    "title": "example glossary",
    "GlossDiv": {
        "title": "S",
        "GlossList": {
            "GlossEntry": {
                "ID": "SGML",
                "SortAs": "SGML",
                "GlossTerm": "Standard Generalized Markup Language",
                "Acronym": "SGML",
                "Abbrev": "ISO 8879:1986",
                "GlossDef": {
                    "para": "A meta-markup language, used to create markup languages such as DocBook.",
                    "GlossSeeAlso": ["GML", "XML"]
                },
                "GlossSee": "markup"
            }
        }
    }
}
}

【问题讨论】:

    标签: json mongodb


    【解决方案1】:

    您的 JSON 似乎只有一个对象。应使用{..},{..} 之类的格式。

    所以,使用--jsonArray 选项:

     mongoimport -d mydb -c mycollection --jsonArray < glossary.json
    

    另一种选择是按照 mongodb 的预期格式化源文档。这将使加载速度更快。

    【讨论】:

    • @user2511142 我使用了--jsonArray 选项,它适用于您的文件。已更新答案。
    • 你能告诉我如何查看导入的json文件的数据吗?
    • @user2511142 open mongo shell,运行use mydb,然后运行db.mycollection.find().pretty()
    【解决方案2】:

    如果您的收藏很大,--jsonArray 需要很长时间才能导入。我每秒收到大约 10 个文件。如果你有一个格式正确的 .json 文件,你可以使用 --file 代替。我现在每秒收到大约 6000 个文档。

    幸好我没有满足于第一个选项!

    【讨论】:

    • 什么是“格式正确的.json 文件”?请您参考或举个例子好吗?
    • 这已经有一段时间了,但我想我只是引用了一些有效的 json - 所以也许可以尝试将你的 json 文本粘贴到这里:jsonlint.com 以验证其正确性
    • 文件可能需要每行使用一个 json 对象进行格式化(例如,所有这些都在同一行,而不是分布在多行)。我还看到一些 cmets 不能有空白。所以这是很好的格式:{“foo”:“bar”}但这不是:{“foo”:“bat”}
    猜你喜欢
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 2018-12-25
    • 2018-09-05
    相关资源
    最近更新 更多