Mongoexport csv - печать метки времени документа - PullRequest
0 голосов
/ 02 мая 2019

Мне нужна созданная временная метка документа в csv вместе с другими полями. Как мне получить это используя экспорт монго?

1 Ответ

0 голосов
/ 02 мая 2019

mongoexport не позволяет преобразовывать экспортируемую коллекцию, поэтому вам нужно взять экспортированный CSV и использовать другой инструмент для преобразования ObjectId в дату.Вот пример супер уродливого сценария оболочки для этого:

...get objectId \
 | sed -E 's|([0-9a-f]{8}).+|\1|' \
 | xargs -I {} echo '$((16#'{}"))" \
 | xargs -I {} bash -c "echo {}" \
 | xargs -I {} date -d @{}
  • sed - захватить первые 8 символов ObjectId
  • $((16#{})) - преобразовать их8 символов в десятичное число
  • date -d @{} - преобразование секунд в дату

Альтернативой всему этому будет использование структуры агрегации Монго для получения меток времени из ObjectIds, а затемиспользуйте команду $out, чтобы сохранить обновленные поля в новую коллекцию, из которой вы затем могли бы mongoexport.

...