2016-01-24 3 views
0

Я пытаюсь импортировать образец BSON test.bson в MongoDB. Сервер уже работает, поэтому я используюОшибка импорта документа BSON, MongoDB

mongoimport --db test --collection foo --drop --file test.bson 

Однако, я получаю следующее сообщение об ошибке:

2016-01-24T13:51:06.126-0500 connected to: localhost 
2016-01-24T13:51:06.144-0500 Failed: error processing document #1: invalid character 'è' looking for beginning of value 
2016-01-24T13:51:06.144-0500 imported 0 documents 

(1) Как один обойти эту ошибку, invalid character 'è' looking for beginning of value? Что именно следует делать для доступа к данным в test.bson?

(2) Есть ли другой способ импорта данных с помощью MongoDB? Если я в корпусе и введите

$mongo 

Как я могу импортировать файлы json/bson?

(BSON является двоичным представлением JSON с дополнительной информацией о типе.)

ответ

2

Я думаю, что вам нужно mongorestore вместо mongoimport. Так что попробуйте

mongorestore --db test --collection foo --drop test.bson 

Из документов:

WARNING:

Avoid using mongoimport and mongoexport for full instance production backups. They do not reliably preserve all rich BSON data types, because JSON can only represent a subset of the types supported by BSON. Use mongodump and mongorestore as described in MongoDB Backup Methods for this kind of functionality.

mongoimport и mongoexport используются с JSon подобных представлений данных (хотя он также работает с CSV и TSV). mongorestore и mongoexport для bson.

+0

Это должно быть правильно. Файл '--file' также не используется. Когда я пробую это, я впоследствии не могу найти данные. '$ mongo', то' db.test.foo.find(). pretty() 'ничего не выводит. Почему это? – ShanZhengYang

+0

Когда вы используете команду mongorestore, вы получаете то же сообщение об ошибке, что и выше? Если это так, ваш файл test.bson может быть поврежден каким-либо образом (например, это может произойти, если вы не используете mongoexport для его создания). Еще одна вещь, которую нужно попробовать - конвертировать тестовые данные в JSON и mongoimport. Если mongoimport с некоторыми тестовыми данными JSON ** не работает **, вы можете испортить базу данных. –

+0

На самом деле, я понял свою ошибку. Команда должна быть 'db.foo.find(). Pretty()', поскольку 'db' ссылается на' test'. Благодаря! – ShanZhengYang

Смежные вопросы