Eu tenho um arquivo json que consiste em cerca de 2000 registros. Cada registro que corresponderá a um documento no banco de dados mongo é formatado da seguinte forma:
{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"}},
Cada registro está em uma única linha no arquivo JSON, e as únicas quebras de linha estão no final de cada registro. Portanto, cada linha do documento começa com "{jobID:" ... estou tentando importá-las para um banco de dados mongo usando o seguinte comando:
mongoimport --db dbName --collection collectionName --file fileName.json
No entanto, eu recebo o seguinte erro:
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
Eu não sei qual é o problema. Alguém pode recomendar uma solução?
json
mongodb
import
mongoimport
amber4478
fonte
fonte
--jsonArray
sendo o bilhete, sim?mongoimport -d <database> -c <collection> --jsonArray -f <filename>.json
.mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray -u ser -p password
authenticationDatabase
mencionada na resposta stackoverflow.com/a/58067928/6791222 .tente isso,
Exemplo,
O problema ocorre devido ao seu formato de data.
Eu usei o mesmo JSON com data modificada como abaixo e funcionou
espero que isto ajude
fonte
""
torno do.json
, se ele contém o nome da pasta, tem espaços. Respondida por Abhi abaixo Para Por exemplo: Isso não vai funcionar, é necessário adicionar""
ao local do arquivo json para importá-lo.D:\>mongoimport --db testimport --collection small_zip < D:\Dev\test test\small_zips.json The system cannot find the file specified.
Isso funcionaD:\>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
Usando mongoimport, você pode conseguir o mesmo
Onde,
--drop
é soltar a coleção, se já existir.fonte
console:
fonte
Eu usei o comando abaixo para exportar banco de dados
e abaixo do comando funcionou para mim importar DB
fonte
Sua sintaxe aparece completamente correta em:
Verifique se você está na pasta correta ou forneça o caminho completo.
fonte
Execute o comando import em outro terminal. (não dentro do mongo shell.)
fonte
No Windows, você pode usar o Command Prompcmd
cmd
; no Ubuntu, você podeterminal
digitar o seguinte comando:quando você abrir o shell do mongo, verificará o nome do banco de dados ao executar este comando:
fonte
Este comando funciona onde nenhuma coleção é especificada.
Shell Mongo após executar o comando
fonte
Eu tentei algo assim e ele realmente funciona:
fonte
Isso funciona comigo quando db com nome de usuário e senha
db sem senha de nome de usuário, remova
-u my_user -p my_pass
Minha amostra json
fonte
Solução:-
Exemplo:-
Coloque seu arquivo na pasta admin: -
Execute este comando no seu teminal: -
Resultado:-
Para mais link
fonte
mongoimport --jsonArray --db dbname - collection collectionName - file FilePath
exemplo mongoimport --jsonArray --db learnmongo --collection people --file C: \ persons.json
fonte
Se você tentar exportar esta coleção de teste:
com mongoexport (a primeira data criada com
Date(...)
e a segunda criada comnew Date(...)
(se o usoISODate(...)
for o mesmo que na segunda linha)), portanto a saída mongoexport será assim:Portanto, você deve usar a mesma notação, porque JSON estrito não tem tipo
Date( <date> )
.Seu JSON também não é válido: o nome de todos os campos deve estar entre aspas duplas, mas o mongoimport funciona bem sem eles.
Você pode encontrar informações adicionais na documentação do mongodb e aqui .
fonte
sizeT:{data: "1949..."}}
Um pouco atrasado para uma resposta provável, pode ajudar novas pessoas. Caso você tenha várias instâncias do banco de dados:
Supondo que as credenciais sejam necessárias, remova essa opção.
fonte
Número de respostas foram dadas, embora eu gostaria de dar o meu comando. Eu costumava frequentemente. Pode ajudar a alguém.
fonte