У меня есть файл JSON, состоящий из около 2000 записей. Каждая запись, которая будет соответствовать документу в базе данных Монго, форматируется следующим образом:
{jobID:"2597401",
account:"XXXXX",
user:"YYYYY",
pkgT:{"pgi/7.2-5":{libA:["libpgc.so"],flavor:["default"]}},
startEpoch:"1338497979",
runTime:"1022",
execType:"user:binary",
exec:"/share/home/01482/XXXXX/appker/ranger/NPB3.3.1/NPB3.3-MPI/bin/ft.D.64",
numNodes:"4",
sha1:"5a79879235aa31b6a46e73b43879428e2a175db5",
execEpoch:1336766742,
execModify: new Date("Fri May 11 15:05:42 2012"),
startTime: new Date("Thu May 31 15:59:39 2012"),
numCores:"64",
sizeT:{bss:"1881400168",text:"239574",data:"22504"}},
Каждая запись находится в одной строке в файле JSON, и единственные разрывы строк находятся в конце каждой записи. Поэтому каждая строка в документе начинается с "{jobID:" ... Я пытаюсь импортировать их в базу данных mongo, используя следующую команду:
mongoimport --db dbName --collection collectionName --file fileName.json
Однако я получаю следующую ошибку:
Sat Mar 2 01:26:12 Assertion: 10340:Failure parsing JSON string near: ,execModif
0x10059f12b 0x100562d5c 0x100562e9c 0x10025eb98 0x10000e643 0x100010b60 0x10055c4cc 0x1000014b7
0x100001454
0 mongoimport 0x000000010059f12b _ZN5mongo15printStackTraceERSo + 43
1 mongoimport 0x0000000100562d5c _ZN5mongo11msgassertedEiPKc + 204
2 mongoimport 0x0000000100562e9c _ZN5mongo11msgassertedEiRKSs + 12
3 mongoimport 0x000000010025eb98 _ZN5mongo8fromjsonEPKcPi + 1576
4 mongoimport 0x000000010000e643
_ZN6Import8parseRowEPSiRN5mongo7BSONObjERi + 2739
5 mongoimport 0x0000000100010b60 _ZN6Import3runEv + 7376
6 mongoimport 0x000000010055c4cc _ZN5mongo4Tool4mainEiPPc + 5436
7 mongoimport 0x00000001000014b7 main + 55
8 mongoimport 0x0000000100001454 start + 52
Sat Mar 2 01:26:12 exception:BSON representation of supplied JSON is too large: Failure parsing
JSON string near: ,execModif
Sat Mar 2 01:26:12
Sat Mar 2 01:26:12 imported 0 objects
Sat Mar 2 01:26:12 ERROR: encountered 1941 errors
Я не знаю в чем проблема. Может кто-нибудь порекомендовать решение?
json
mongodb
import
mongoimport
amber4478
источник
источник
--jsonArray
быть билетом, да?mongoimport -d <database> -c <collection> --jsonArray -f <filename>.json
.mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray -u ser -p password
authenticationDatabase
упомянутое в ответе stackoverflow.com/a/58067928/6791222 .попробуй это,
Пример,
Проблема из-за вашего формата даты.
Я использовал тот же JSON с измененной датой, как показано ниже, и это сработало
надеюсь это поможет
источник
""
во всем.json
, если оно содержит имя папки с пробелами. Ответ Abhi ниже. Например, это не сработает, необходимо добавить""
его в расположение файла json, чтобы импортировать его.D:\>mongoimport --db testimport --collection small_zip < D:\Dev\test test\small_zips.json The system cannot find the file specified.
Это работаетD:\>mongoimport --db testimport --collection small_zip < "D:\Dev\test test\small_zips.json" 2016-04-17T18:32:34.328+0800 connected to: localhost 2016-04-17T18:32:34.610+0800 imported 200 documents
Используя mongoimport вы можете добиться того же
где,
--drop
удалить коллекцию, если она уже существует.источник
приставка:
источник
Я использовал ниже команду для экспорта БД
и ниже у меня работала команда импортировать БД
источник
Ваш синтаксис выглядит полностью правильным в:
Убедитесь, что вы находитесь в правильной папке или укажите полный путь.
источник
Запустите команду импорта в другом терминале. (не внутри оболочки монго.)
источник
В Windows вы можете использовать командную строку Prompcmd
cmd
, в Ubuntu вы можете использоватьterminal
ее, введя следующую команду:затем, когда вы откроете свою оболочку mongo, вы найдете проверить имя_базы_данных при выполнении этой команды:
источник
Эта команда работает там, где коллекция не указана.
Оболочка Монго после выполнения команды
источник
Я попробовал что-то вроде этого, и это на самом деле работает:
источник
Это работает со мной, когда БД с именем пользователя и паролем
БД без имени пользователя, пароль, пожалуйста, удалите
-u my_user -p my_pass
Мой образец JSON
источник
Решение:-
Пример:-
Поместите свой файл в папку администратора: -
Запустите эту команду на своем терминале: -
Вывод:-
Для получения дополнительной ссылки
источник
mongoimport --jsonArray --db dbname - коллекция collectionName - файл FilePath
пример mongoimport --jsonArray --db learnmongo --коллекция лиц --файл C: \ people.json
источник
Если вы попытаетесь экспортировать эту тестовую коллекцию:
с помощью mongoexport (первая дата, созданная с помощью,
Date(...)
а вторая - с помощьюnew Date(...)
(если использованиеISODate(...)
будет таким же, как во второй строке)), поэтому вывод mongoexport будет выглядеть следующим образом:Поэтому вы должны использовать ту же запись, потому что строгий JSON не имеет типа
Date( <date> )
.Также ваш JSON недействителен: все имена полей должны быть заключены в двойные кавычки, но mongoimport работает без них.
Вы можете найти дополнительную информацию в документации mongodb и здесь .
источник
sizeT:{data: "1949..."}}
Немного опоздал на вероятный ответ, может помочь новым людям. Если у вас есть несколько экземпляров базы данных:
Предполагая, что необходимы учетные данные, в противном случае удалите эту опцию.
источник
Количество ответов было дано, хотя я хотел бы дать мою команду. Я привык часто. Это может помочь кому-то.
источник