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

时间:2011-08-23 01:40:58

标签: mongodb

我正在尝试使用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查询。

6 个答案:

答案 0 :(得分:4)

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

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

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

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

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

答案 1 :(得分:4)

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

CODE ::

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

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

答案 2 :(得分:1)

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


不工作:

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

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


如下:

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


- 虽然在mongo doc,但它说

  

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


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

答案 3 :(得分:0)

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

mongoexport -d kb_development -c articles -q'{_ id:“4e3ca3bc38c4f10adf000002”}'

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:0)

对于 mongoexport 版本:r4.2.3

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

对于嵌套字段

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