Ich probiere das an der mongodb-Konsole aus:
%Vor% Es wird mit "ok" zurückgegeben, aber db.foobar.find()
, gibt einen leeren Datensatz zurück. Ich versuche upsert
ein Dokument, so dass es aussieht wie:
Wenn das Dokument nicht existiert, erstellen Sie eins mit einer Anzahl von 1. Andernfalls erhöhen Sie einfach die Anzahl. Warum funktioniert das nicht?
In dem von Ihnen bereitgestellten Code-Snippet fehlt eine schließende geschweifte Klammer nach dem $ set-Objekt. Aber das ist ein Nebenproblem.
Ich glaube nicht, dass Sie dasselbe Unterdokument in einer Transaktion setzen und erhöhen können. Da count ein Mitglied unter foo ist, wird es auf einem Upsert noch nicht existieren. Der Fehler, den ich bekomme, wenn ich folgendes versuche:
%Vor%ist "widersprüchliche Mods in Update". Vielleicht können Sie es so modellieren:
%Vor%oder wenn Sie bevorzugen:
%Vor%Also versuche ich gerade:
%Vor% Dies aktualisiert das score
und fügt es dem Objekt hinzu, wenn es nicht existiert, es scheint jedoch alle Objekte name
s zu doc.name zu ändern (dh in diesem Fall "thename").
Ich bin nicht gekommen, wenn das Dokument noch nicht existiert
Tags und Links mongodb