2015-11-11 7 views
8

Ich versuche, ein neues Feld in alle Dokumente in einer vorhandenen Sammlung einzufügen.MongoDB Feld in alle Dokumente in einer Sammlung einfügen

Datenbankname = test Sammlung name = Teams

test.teams.update({ 
} 
, 
{ 
    $set: { 
     "isGolden": false 
    } 
} 
, 
false, 
true) 

Wenn ich es mit MongoChef bin versucht, es mir die folgende Fehlermeldung geben: enter image description here

Was mit diesem ist falsch? Dank

+0

Sollte das nicht "Verwendungstest" sein; db.teams.update ({}, {$ set: {isGolden: false}}, false, true); '? – chridam

+0

mein Datenbankname ist Test, aber ich habe diese Version auch versucht, aber es funktioniert nicht. –

+1

Sie müssen diesen vollständigen Befehl in der MongoChef IntelliShell ausführen, nicht in dem JSON-Editor, in dem Sie sich gerade befinden. Aber es muss "db.teams.update" sein, wie chridam sagt, nicht "test.teams.update". – JohnnyHK

Antwort

21

Wenn Sie alle Dokumente aktualisieren möchten, verwenden Sie so etwas wie dieses:

db.teams.update({}, {$set: {isGolden: false}}, {multi: true}); 

Ihr alle auswählen, die eingereichten isGolden auf false gesetzt und machen dieses Update in allen Dokumenten Multi mit: true

+0

es sagt "Erwartet eine Öffnung '{' bei Zeile 1, Spalte 2" Das ist, was ich die ganze Zeit mit verschiedenen Varianten –

+0

Dies ist die einzige Abfrage, die Sie nicht ausführen können? Ich habe es auf Mongo Shell 3.0.7 auf Arch Linux getestet und es funktioniert gut – rcmgleite

+0

Vielen Dank Jungs Ich habe das mit MongoChef Advanced-> Update Dialogue getan. Ich habe alle Dokumente in der Sammlung ausgewählt und das Feld hinzugefügt. Jetzt hat es funktioniert. –

4

Mit MongoDB 3.2 oder eine höhere Version, können Sie

tun
db.teams.updateMany({}, {$set: {isGolden: false}}); 

Hier ist die doc für updateMany Funktion db.collection.updateMany()

1

Mit Studio 3T haben Sie Abfragen im JSON-Modus geschrieben, in denen JSON-Daten verwendet werden sollen, Sie aber keine JSON-Abfrage schreiben. Sie müssen in den InteliShell-Modus wechseln, in dem Ihre Abfrage in dem Format ausgeführt wird, das Sie geschrieben haben.

Studio 3T InteliShell

Verwandte Themen