Ich bin neu in Mongodb. Nach der Installation von Mongodb unter Windows versuche ich, eine einfache Json-Datei mit folgendem Befehl einzufügen:
C:\>mongodb\bin\mongoimport --db test --collection docs < example2.json
Ich erhalte folgende Fehlermeldung:
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]"}
Was muss ich tun, um eine neue Json-Datei in Mongodb zu importieren?
Benutzen
mongoimport --jsonArray --db test --collection docs --file example2.json
Es ist wahrscheinlich durch die Zeilenumbrüche Zeichen durcheinander.
Der folgende Befehl arbeitete für mich
mongoimport --db test --collection docs --file example2.json
wenn ich das zusätzliche Newline-Zeichen vor dem Email
-Attribut in jedem der Dokumente entfernt habe.
{"FirstName": "Bruce", "LastName": "Wayne", "Email": "[email protected]"}
{"FirstName": "Lucius", "LastName": "Fox", "Email": "[email protected]"}
{"FirstName": "Dick", "LastName": "Grayson", "Email": "[email protected]"}
Das funktionierte für mich - (von 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
Verwenden Sie den folgenden Befehl, um die JSON-Datei zu importieren
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
mongoimport --jsonArray -d DatabaseN -c collectionName /filePath/filename.json
Diese Lösung gilt für Windows-Computer.
MongoDB benötigt ein Datenverzeichnis, um Daten zu speichern. Der Standardpfad ist C:\data\db
. Falls Sie nicht über das Datenverzeichnis verfügen, erstellen Sie eines auf Ihrem Laufwerk C :. (P.S .: data\db bedeutet, dass sich im Verzeichnis 'data' ein Verzeichnis mit dem Namen 'db' befindet.)
Platzieren Sie den zu importierenden json in folgendem Pfad: C:\data\db\
.
Öffnen Sie den Befehl Eingabeaufforderung und geben Sie den folgenden Befehl ein
mongoimport --db databaseName --collections collectionName --file fileName.json --type json --batchSize 1
Hier,
Es ist mir vor ein paar Wochen passiert. Die Version von Mongoimport war zu alt. Nach der Aktualisierung auf die neueste Version wurde es erfolgreich ausgeführt und alle Dokumente importiert.
In MS Windows muss der Befehl mongoimport in einer normalen Windows-Eingabeaufforderung ausgeführt werden, nicht in der Eingabeaufforderung von mongodb.
die folgenden zwei Möglichkeiten funktionieren gut:
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs < example2.json
wenn sich die Sammlungen unter einem bestimmten Benutzer befinden, können Sie -u -p --authenticationDatabase
verwenden.