Mongodb 使用mongoexport导出一个对象,如何指定_id?
我正在尝试使用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 -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