Ich habe eine Datenbank namens myDatabase und eine Sammlung namens test.Mongo-Felder aus Datei aktualisieren
Ich habe eine Datei Name.csv mit dem Inhalt unter genannt:
David
Ronaldo
Smith
Messi
Phlip
Jeremy
Sahid
Was ich tun möchte, ist:
1) Lesen von Daten aus Datei Name.csv
2) Meine Sammlung Test hat Feld namens fisrt_name die nun denselben Wert enthalten. Daher möchte ich das Feld namens Vorname mit den Namen in der obigen Datei nach dem Zufallsprinzip aktualisieren.
Was ich habe versucht, ist:
use myDatabse
var file = cat('/home/milan/Desktop/Names.csv'); // read the file
var name = file.split('\n'); // create an array
for (var i = 0, l = name.length; i < l; i++){
db.test.find().forEach(function(doc){db.test.update({_id:doc._id}, {$set:{"first_name":name[i]}});});
}
Anmerkung: Ich kein Ergebnis oder Fehler aus dem obigen Skript erhalten hat
ich führen so etwas wollen:
{ "_id" : ObjectId("141491ee909f1a779b467cbb"), "first_name" : "David" } //first name from file
{ "_id" : ObjectId("141491ee909f1a779b467ccc"), "first_name" : "Ronaldo" } // Second name from file
{ "_id" : ObjectId("141491ee909f1a779b467cdd"), "first_name" : "Smith" } // third name from file
Sie haben keine Wörter definiert. Zumindest nicht in der Frage. –
Sorry für den Fehler, Es ist jetzt –
wieder bearbeitet. 'name' wäre wahrscheinlich nur eine lange Zeichenfolge. Sie müssten auf das Komma "," oder etwas aufteilen. Sie wissen, dass es eine Upsert-Option in [mongoimport] gibt (https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mode). Da ist der Link. Es wäre wahrscheinlich sauberer, das einfach zu benutzen, anstatt es in der Shell zu versuchen. –