web-dev-qa-db-fra.com

Insérer un fichier json dans mongodb

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

exemple2.fichier

{"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?

61
Jay

Utilisation 

mongoimport --jsonArray --db test --collection docs --file example2.json

C'est probablement gâcher à cause des caractères de nouvelle ligne.

87
Leon

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.

exemple2.json

{"FirstName": "Bruce", "LastName": "Wayne", "Email": "[email protected]"}
{"FirstName": "Lucius", "LastName": "Fox", "Email": "[email protected]"}
{"FirstName": "Dick", "LastName": "Grayson", "Email": "[email protected]"}
47
mithunsatheesh

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
22
nanusdad

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
15
Sumit Kamboj
mongoimport --jsonArray  -d DatabaseN -c collectionName /filePath/filename.json
2
Vijay Prajapati

Cette solution est applicable pour les machines Windows.

  1. 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")

  2. Placez le JSON que vous souhaitez importer dans ce chemin: C:\data\db\.

  3. Ouvrez l'invite de commande et tapez la commande suivante

    mongoimport --db databaseName --collections collectionName --file fileName.json --type json --batchSize 1

Ici,

  • databaseName: votre nom de base de données
  • collectionName: votre nom de collection
  • nomfichier: nom de votre fichier json qui se trouve dans le chemin C:\data\db
  • batchSize peut être n'importe quel entier selon vos souhaits
0

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.

Référence: http://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/?_ga=1.11365492.1580529687.1434379875

0
aneeshep

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.

0
Baraka215

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

0
user10383785