Mongodb 使用mongoexport导出一个对象,如何指定_id?

Mongodb 使用mongoexport导出一个对象,如何指定_id?,mongodb,Mongodb,我正在尝试使用mongoexport导出一个对象,通过其ID进行过滤 我试过: mongoexport -d "kb_development" -c "articles" -q "{'_id': '4e3ca3bc38c4f10adf000002'}" 还有很多变化,但它一直在说 connected to: 127.0.0.1 exported 0 records (我确信收藏中有这样一件物品) 在mongo shell中,我会使用ObjectId('4e3ca3bc38c4f10adf00

我正在尝试使用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查询中似乎不起作用。

我认为您应该能够在
mongoexport
的查询参数中使用
ObjectId(…)

mongoexport -d kb_development -c articles -q '{_id: ObjectId("4e3ca3bc38c4f10adf000002")}'
如果这不起作用,您可以使用
ObjectId
s的“严格模式”javascript表示法:


(还请注意,严格模式JSON是由
mongoexport
生成的格式)

您必须使用
ObjectId
类型指定
\u id
字段。在你的问题中,它被指定为一个字符串

代码::

mongoexport -h localhost -d my_database -c sample_collection -q '{key:ObjectId("50584580ff0f089602000155")}' -o my_output_file.json
注意::不要忘记查询中的引号


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

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

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


不工作:

-q'{“\u id”:ObjectId(“5719cd12b1168b9d45136295”)}

-q'{u id:{“$oid”:“5719cd12b1168b9d45136295”}


有效:

-q“{u id:ObjectId('5719cd12b1168b9d45136295')”



-虽然在mongo,它说

您必须用单引号(例如.)括起查询,以确保 不与shell环境交互



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

此处提供的许多答案对我不适用,错误在于我的双引号。以下是对我有效的方法:

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

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

对于mongoexport版本:r4.2.3

mongoexport -q '{"_id": {"$oid": "4e3ca3bc38c4f10adf000002"}}' 
对于嵌套字段

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

谢谢德克罗斯塔,我想我已经试过这些方法了,但我想我把“和”的方法搞砸了!问题已解决:)
mongoexport -q '{"_id": {"$oid": "4e3ca3bc38c4f10adf000002"}}' --fields parentField.childField