Экспорт одного объекта с помощью mongoexport, как указать _id? - PullRequest
2 голосов
/ 23 августа 2011

Я пытаюсь экспортировать только один объект с помощью mongoexport, фильтруя по его идентификатору.

Я пытался:

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

и много вариаций, но он все время говорит

connected to: 127.0.0.1
exported 0 records

(и я уверен, что в коллекции есть такой объект)

В оболочке mongo я бы использовал ObjectId ('4e3ca3bc38c4f10adf000002'), но, похоже, он не работает в запросе mongoexport.

Ответы [ 5 ]

4 голосов
/ 21 сентября 2012

Вы должны указать поле _id, используя тип ObjectId. В вашем вопросе это было указано в виде строки.

КОД ::

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

ПРИМЕЧАНИЕ :: не забыл цитаты в запросе

4 голосов
/ 23 августа 2011

Я думаю, вы должны иметь возможность использовать ObjectId(...) в аргументе запроса для mongoexport:

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

Если это не сработает, вы можете использовать javascript-нотацию "строгого режима" для ObjectId s, как здесь документировано :

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

(Также обратите внимание, что JSON строгого режима - это формат, создаваемый mongoexport)

1 голос
/ 26 апреля 2016

Моя версия MongoDB: 3.2.4. когда я использую mongoexport инструмент в оболочке Монго:


НЕ РАБОТАЕТ:

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

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


роботи:

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


- Хотя в монго док , это говорит, что

Вы должны заключить запрос в одинарные кавычки (например, '), чтобы убедиться, что он не взаимодействует с вашей оболочкой.


- Но одиночная кавычка (') не работает! пожалуйста, используйте двойную кавычку (")!

0 голосов
/ 08 февраля 2017

многие из приведенных здесь ответов не сработали, ошибка была в моих двойных кавычках.Вот что сработало для меня:

mongoexport -h localhost -d имя_базы-данных -c collection_name -q {_id: ObjectId ('50584580ff0f089602066633')} -o output_file.json

не забудьте использовать одинцитата только для строки ObjectId.

0 голосов
/ 17 июня 2014

Вам не нужно добавлять ObjectId или $ oid, как указано в ответах выше. Как уже упоминалось @Blacksad, просто получайте одинарные и двойные кавычки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...