Ответ 1
Используйте
mongoimport --jsonArray --db test --collection docs --file example2.json
Вероятно, он испортился из-за символов новой строки.
Я новичок в mongodb. После установки mongodb в windows я пытаюсь вставить простой json файл, используя следующую команду:
C:\>mongodb\bin\mongoimport --db test --collection docs < example2.json
Я получаю следующую ошибку:
connected to: 127.0.0.1
Fri Oct 18 09:05:43.749 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Field name expected: offset:43
Fri Oct 18 09:05:43.750
Fri Oct 18 09:05:43.750 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0
Fri Oct 18 09:05:43.751
Fri Oct 18 09:05:43.751 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Field name expected: offset:42
Fri Oct 18 09:05:43.751
Fri Oct 18 09:05:43.751 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0
Fri Oct 18 09:05:43.751
Fri Oct 18 09:05:43.752 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Field name expected: offset:44
Fri Oct 18 09:05:43.752
Fri Oct 18 09:05:43.752 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0
Fri Oct 18 09:05:43.752
Fri Oct 18 09:05:43.752 check 0 0
Fri Oct 18 09:05:43.752 imported 0 objects
Fri Oct 18 09:05:43.752 ERROR: encountered 6 error(s)s
{"FirstName": "Bruce", "LastName": "Wayne",
"Email": "[email protected]"}
{"FirstName": "Lucius", "LastName": "Fox",
"Email": "[email protected]"}
{"FirstName": "Dick", "LastName": "Grayson",
"Email": "[email protected]"}
Что мне нужно сделать, чтобы импортировать новый json файл в mongodb?
Используйте
mongoimport --jsonArray --db test --collection docs --file example2.json
Вероятно, он испортился из-за символов новой строки.
Ниже команда работала для меня
mongoimport --db test --collection docs --file example2.json
когда я удалял дополнительный символ новой строки перед атрибутом Email
в каждом из документов.
{"FirstName": "Bruce", "LastName": "Wayne", "Email": "[email protected]"}
{"FirstName": "Lucius", "LastName": "Fox", "Email": "[email protected]"}
{"FirstName": "Dick", "LastName": "Grayson", "Email": "[email protected]"}
Это сработало для меня - (из mongo shell)
var file = cat('./new.json'); # file name
use testdb # db name
var o = JSON.parse(file); # convert string to JSON
db.forms.insert(o) # collection name
Используйте команду ниже при импорте файла JSON
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
mongoimport --jsonArray -d DatabaseN -c collectionName /filePath/filename.json
следующие два способа работают хорошо:
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs < example2.json
если коллекции принадлежат определенному пользователю, вы можете использовать -u -p --authenticationDatabase
В MS Windows команда mongoimport должна запускаться в обычной командной строке Windows, а не в командной строке mongodb.
Это случилось со мной пару недель назад. Версия mongoimport была слишком старой. После того, как я обновлен до последней версии, он успешно выполнил и импортировал все документы.
Это решение применимо для Windows-машины.
MongoDB нужен каталог данных для хранения данных. Путь по умолчанию - C:\data\db
. Если у вас нет каталога данных, создайте его на диске C :. (PS: data\db означает, что внутри каталога 'data' есть каталог с именем 'db')
Поместите json, который вы хотите импортировать в этот путь: C:\data\db\
.
Откройте командную строку и введите следующую команду
mongoimport --db databaseName --collections collectionName --file fileName.json --type json --batchSize 1
Вот,
В MongoDB Вставить данные массива Json из файла (из определенного места в системе/ПК) с помощью команды оболочки mongo. При выполнении приведенной ниже команды она должна быть в одной строке.
var file = cat('I: /data/db/card_type_authorization.json'); var o = JSON.parse(file); db.CARD_TYPE_AUTHORIZATION.insert(o);
Файл JSON: card_type_authorization.json
[{
"code": "visa",
"position": 1,
"description": "Visa",
"isVertualCard": false,
"comments": ""
},{
"code": "mastercard",
"position": 2,
"description": "Mastercard",
"isVertualCard": false,
"comments": ""
}]