Ich schreibe ein Stück Code, der auf einem npm-Cron-Timer ausgeführt werden soll. Hier ist sie:UpdateMany Keine Funktion MongoDB + Knoten
var CronJob = require('cron').CronJob;
var job = new CronJob({
cronTime: '* * * * *',
onTick: function() {
var monk = require('monk'); // persistence module over MongoDB
var db = monk('localhost:27017/test');
console.log("Hello from the Cron job! " + new Date());
var collection = db.get('Activity');
collection.updateMany({"repetitions.today": {$gt: 0}},
{
$set: {
"repetitions.today": 0,
}
}, function(err, activity){
if (err) throw err;
});
},
start: true,
timeZone: 'America/Los_Angeles'
});
job.start();
Das Problem ist, dass ich einen Fehler auf der Linie collection.updateMany()
bekommen. Der Fehler besagt, dass
updateMany keine Funktion ist
Auf der anderen Seite, wenn ich update()
statt updateMany()
verwenden, funktioniert der Code (aber nur auf den ersten Punkt in Mongo Sammlung, wie erwartet). Was mache ich falsch und was könnte das verursachen?
Ich habe versucht, dies mit foreach()
neu zu schreiben, aber es wird auch nicht als eine Funktion erkannt.
versuchen wollen Haben Sie versucht, mit {multi: true} als Option für die Update-Abfrage? collection.update ({ "repetitions.today": {$ gt: 0}}, { $ gesetzt: { "repetitions.today": 0, } }, { multi: true} – dyouberg
Das funktionierte Wissen Sie, ob es dasselbe ist wie updateMany()? Ich bin immer noch neugierig, warum ich das oben beschriebene Problem hatte. – MadPhysicist
Nicht sicher, updateMany() benötigt Version 3.2 oder neuer von MongoDB. Welche Version verwenden Sie? (Mongo --version) – dyouberg