Как установить тип данных монгоэкспорта

Проблема в том, что я обнаружил, что mongoexport не может сохранить тип данных в БД. Например, есть поле с именем "tweetID", оно должно быть строкой цифр, например "23465478". После экспорта коллекции в CSV-файл я обнаружил, что для некоторых записей идентификатор tweetID экспортируется в виде десятичного типа, например "254323467.0", а некоторые записи - нет. Чтобы избежать ненужных ошибок, я просто хочу экспортировать все поля в чистом виде строки. Кто-нибудь знает, как установить это в команде mongoexport? Заранее спасибо.

1 ответ

Решение

Ты не можешь Если mongoexport экспортировал 123 как 123.0, тогда 123 был тип Double в документе. Вы должны попытаться вставить значение в виде 32- или 64-битного целого

db.collection.insert({ "tweetId" : NumberLong(1234567) })

mongoexport экспортирует JSON, используя представление JSON строгого режима, которое вставляет некоторую информацию о типах в JSON, так что парсеры MongoDB JSON (например, mongoimport) могут воспроизводить правильные типы данных BSON, тогда как экспортированный JSON по-прежнему соответствует стандарту JSON.

{ "tweetId" : { "$numberLong" : "1234567" } }

Чтобы сохранить всю информацию о типе, используйте вместо этого mongodump / mongorestore. Чтобы экспортировать все значения полей в виде строк, вам нужно написать собственный скрипт с драйвером, который выбирает каждый документ и структурирует все значения.

Другие вопросы по тегам