【问题标题】:Export one object with mongoexport, how to specify _id?用mongoexport导出一个对象,如何指定_id?
【发布时间】:2021-01-28 06:54:16
【问题描述】:

我正在尝试使用 mongoexport 仅导出一个对象,并按其 ID 进行过滤。

我试过了:

mongoexport -d "kb_development" -c "articles" -q "{'_id': '4e3ca3bc38c4f10adf000002'}"

还有很多变化,但它一直在说

connected to: 127.0.0.1
exported 0 records

(而且我确定集合中有这样的对象)

在 mongo shell 中我会使用 ObjectId('4e3ca3bc38c4f10adf000002'),但它似乎在 mongoexport 查询中不起作用。

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    我认为您应该可以在mongoexport 的查询参数中使用ObjectId(...)

    mongoexport -d kb_development -c articles -q '{_id: ObjectId("4e3ca3bc38c4f10adf000002")}'
    

    如果这不起作用,您可以使用 ObjectIds、as documented here 的“严格模式”javascript 表示法:

    mongoexport -d kb_development -c articles -q '{_id: {"$oid": "4e3ca3bc38c4f10adf000002"}}'
    

    (还要注意严格模式JSON是mongoexport产生的格式)

    【讨论】:

    • 感谢 dcrosta,我以为我已经尝试过这些方法,但我想我搞砸了 " 和 's !问题解决了:)
    • 到目前为止,解决该问题的最佳答案是使用“$oid”而不是 ObjectId()
    【解决方案2】:

    您必须使用ObjectId 类型指定_id 字段。在您的问题中,它被指定为字符串。

    代码::

    mongoexport -h localhost -d my_database -c sample_collection -q '{key:ObjectId("50584580ff0f089602000155")}' -o my_output_file.json
    

    注意 :: 不要忘记查询中的引号

    【讨论】:

      【解决方案3】:

      我的 MongoDB 版本:3.2.4。当我在 mongo shell 中使用mongoexport 工具时:


      不工作:

      -q '{"_id":ObjectId("5719cd12b1168b9d45136295")}'

      -q '{_id: {"$oid": "5719cd12b1168b9d45136295"}}'


      作品:

      -q "{_id:ObjectId('5719cd12b1168b9d45136295')}"


      - 虽然在 mongo doc 中,它说

      您必须将查询括在单引号中(例如 ')以确保它 不与您的 shell 环境交互。


      - 但是,单引号(')不起作用!请使用双引号(")!

      【讨论】:

        【解决方案4】:

        对于 mongoexport 版本:r4.2.3

        mongoexport -q '{"_id": {"$oid": "4e3ca3bc38c4f10adf000002"}}' 
        

        对于嵌套字段

        mongoexport -q '{"_id": {"$oid": "4e3ca3bc38c4f10adf000002"}}' --fields parentField.childField
        

        【讨论】:

          【解决方案5】:

          您不必按照上述答案的建议添加 ObjectId 或 $oid。正如@Blacksad 所提到的,只需正确使用单引号和双引号即可。

          mongoexport -d kb_development -c articles -q '{_id:"4e3ca3bc38c4f10adf000002"}'
          

          【讨论】:

            【解决方案6】:

            这里提供的许多答案对我不起作用,错误在于我的双引号。这对我有用:

            mongoexport -h localhost -d database_name -c collection_name -q {_id:ObjectId('50584580ff0f089602066633')} -o output_file.json
            

            请记住仅对 ObjectId 字符串使用单引号。

            【讨论】:

              猜你喜欢
              • 2015-08-07
              • 1970-01-01
              • 2012-10-10
              • 2012-02-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-05-06
              • 2022-01-13
              相关资源
              最近更新 更多