Неожиданный конец ввода JSON с помощью MongoDB Compass

#json #mongodb #mongodb-compass

#json #mongodb #mongodb-compass

Вопрос:

Я экспортировал свои локальные коллекции MongoDB, используя тип файла JSON на моем компьютере. Затем я захотел импортировать эти коллекции на свой корневой сервер, используя MongoDB Compass.

Каждый раз, когда я пытаюсь экспортировать коллекцию, она выдает следующую ошибку: Ошибка

Вот как выглядит мой файл JSON:

 {..."settings":{"inventory":{"crate":{"$numberInt":"0"},"cratekey":{"$numberInt":"0"},"pickaxe":{"$numberInt":"0"},...}
  

(Я не знаю, уместно ли это для ответа на этот вопрос, но эта строка JSON всего лишь 1/142000)

Как я могу исправить эту ошибку?

Ответ №1:

TL; DR
У вас должна быть 1 пустая строка в самом низу файла json.

Длинная версия
Я не знаю, поможет ли это в вашем случае, но я столкнулся с аналогичной проблемой при попытке импортировать данные json. У меня было по 1 документу на строку, но что-то все еще было не так. Затем я экспортировал аналогичный фрагмент данных в формате json и попытался поиграть с ним, чтобы увидеть, что вызвало проблему. Оказывается, что json должен содержать пустую строку внизу. Итак, допустим, у вас есть 1 документ для импорта. Вы помещаете весь документ в первую строку. Затем вы просто нажимаете enter и создаете вторую строку внизу. После этого мои данные были импортированы без проблем.

Комментарии:

1. По этой ссылке есть кнопка «удалить пробелы», которая уменьшит это для вас: jsonviewer.stack.hu

2. @GaryVaughan Проблема не связана с пробелами или уменьшением json. Проблема заключалась в отсутствующей пустой строке в конце файла json

3. Для меня звучит странно, что вам нужна вторая строка внизу файла. Но я думаю, что если ваш json выглядит следующим образом: {…»settings»:{«inventory»:{«crate»:{«$numberInt»:»0″},»cratekey»:{«$numberInt»:»0″},»pickaxe»:{«$numberInt»:»0″},…} , вы, вероятно, делаете? Пожалуйста, просветите меня по этому поводу, поскольку мне интересно, почему у меня никогда не было такой проблемы с моим импортом, и я никогда не слышал об этом.

4. @GaryVaughan Я полностью согласен, что это очень странное поведение, но, похоже, это просто внутренняя реализация MongoDB Compass. При экспорте данных также присутствовала пустая строка, поэтому, когда я удалил ее и импортировал обратно, я получил эту ошибку. Обратите внимание, на этот вопрос был дан ответ год назад, и в MongoDB Compass были обновления, так что это могло измениться с более новыми версиями. У меня не было времени проверить, было ли это изменено.

5. Вы знаете, я никогда не проверял с помощью Compass. Обычно я выполнял экспорт и сразу же импортировал его в другую коллекцию в другой базе данных. Интересно…

Ответ №2:

Итак, проблема в том, что вам нужно минимизировать ваш документ json. То есть это должно быть в одной строке. Итак, вот ссылка на веб-сайт, где вы вставите свой документ json слева и получите уменьшенный документ справа. У меня это сработало. Я надеюсь, что это также поможет вам. https://codebeautify.org/jsonminifier

Ответ №3:

У меня была точно такая же проблема, по-видимому, их должно быть по одному документу на строку. Однако используйте https://studio3t.com / это будет работать нормально.

Комментарии:

1. Это не решение проблемы