Mein Mongoose BefehlMongoose werfen Sie müssen einen Feldfehler angeben, während eine Variable an Stelle einer expliziten Zeichenfolge
Modelname.update(
{$and :[ {'field1' : field1}, {'field2' : field2}, {'field3' : field3}, {'field4' : field4}]},
{
$set : {'timestamp' : timestamp},
$inc : {speed_string: 1}
},{upsert: true}, function (err, record)
{
if (err)
{
}
else
{
}
});
Verwendung Wie Sie, dass speed_string sehen kann, ist eine Variable, die angeblich in der bekommen erhöht echtes Dokument oder hochgesetzt werden. Ich habe es kurz vor der Abfrage protokolliert und es ist in der Tat eine Zeichenfolge (und nicht leer, wie der Fehler liest), aber die Abfrage ist nicht durch und ich bekomme diesen Fehler.
"errmsg": " '$ inc' ist leer Sie ein Feld wie so angeben müssen. {$ Inc: {...}}"}
Wenn ich ersetzen Diese Variable mit 'expected_string'
Dinge funktionieren gut und das ist mehr Verwirrung, dennoch.
Da ist etwas, was ich falsch mache, Hilfe wird geschätzt.
Ich bemerkte auch dieses Problem. Feldindex muss eine Zeichenkette sein wie '{'speed_string': 1}' –
@PavloZhukov Vielen Dank für Ihre Zeit Pavlo. Es muss einen Weg dafür geben ... Dinge funktionieren gut, im Falle von Pymongo für Python in einem ähnlichen Fall. –
Und [API] (https://docs.mongodb.com/manual/reference/operator/update/inc/) sagt, es muss funktionieren, aber auf Übung auf Node.js funktioniert es nur, wenn es als String eingestellt ist. Ich war verwirrt davon –