Je suis nouveau à Mongodb. Après avoir installé mongodb sous Windows, je tente d’insérer un simple fichier json en utilisant la commande suivante:
C:\>mongodb\bin\mongoimport --db test --collection docs < example2.json
Je reçois l'erreur suivante:
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]"}
Que dois-je faire pour importer un nouveau fichier JSON dans mongodb?
Utilisation
mongoimport --jsonArray --db test --collection docs --file example2.json
C'est probablement gâcher à cause des caractères de nouvelle ligne.
Commande ci-dessous a fonctionné pour moi
mongoimport --db test --collection docs --file example2.json
quand j'ai enlevé le caractère de nouvelle ligne supplémentaire avant l'attribut Email
dans chacun des documents.
{"FirstName": "Bruce", "LastName": "Wayne", "Email": "[email protected]"}
{"FirstName": "Lucius", "LastName": "Fox", "Email": "[email protected]"}
{"FirstName": "Dick", "LastName": "Grayson", "Email": "[email protected]"}
Cela a fonctionné pour moi - (de 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
Utilisez la commande ci-dessous lors de l'importation d'un fichier JSON
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
mongoimport --jsonArray -d DatabaseN -c collectionName /filePath/filename.json
Cette solution est applicable pour les machines Windows.
MongoDB a besoin d'un répertoire de données pour stocker des données. Le chemin par défaut est C:\data\db
. Si vous ne possédez pas le répertoire de données, créez-en un dans votre lecteur C :. (P.S .: data\db signifie qu'il existe un répertoire nommé "db" à l'intérieur du répertoire "data")
Placez le JSON que vous souhaitez importer dans ce chemin: C:\data\db\
.
Ouvrez l'invite de commande et tapez la commande suivante
mongoimport --db databaseName --collections collectionName --file fileName.json --type json --batchSize 1
Ici,
Cela m'est arrivé il y a quelques semaines. La version de mongoimport était trop ancienne. Une fois que j'ai mis à jour à la dernière version, il a fonctionné avec succès et a importé tous les documents.
Sous MS Windows, la commande mongoimport doit être exécutée dans une invite de commande Windows normale et non à partir de l'invite de commande mongodb.
les deux manières suivantes fonctionnent bien:
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs < example2.json
si les collections sont sous un utilisateur spécifique, vous pouvez utiliser -u -p --authenticationDatabase