Ich benutze Postgresql, Knex und Bookshelf, um Abfragen zu aktualisieren, um meine Benutzer-Tabelle zu aktualisieren. Ich möchte alle Benutzer finden, die sich zu einem bestimmten Zeitpunkt nicht angemeldet haben und dann ihr Feld numAbsences und numTardies aktualisieren.Zurückgeben und Aktualisieren einer Tabelle im Bookshelf Knex
Es scheint jedoch, dass wenn ich eine rohe SQL-Abfrage mit bookshelf.knnex das Ergebnis, das ich für Benutzer bekomme ein Array von Objekten und nicht ein Array von Bücherregal Objekte Objekte, weil ich die Objekte nicht direkt in die Datenbank, wenn ich versuche, .save() zu verwenden. Ich bekomme die Ausnahme .
Weiß jemand, wie ich die Werte in der Datenbank für die Benutzer aktualisieren kann? Ich habe die Aktualisierungsfunktion gesehen, aber ich muss auch die Benutzer in absentUsers zurückgeben, also wähle ich sie gerade aus.
// field indicates whether the student was late or absent
var absentUsers = function(field){
// returns all users who did not sign in during a specific time
if (ongoingClasses){
return bookshelf.knex('users')
.join('signed_in', 'signed_in.studentId', '=', 'users.id')
.where('signed_in.signedIn', false)
.select()
.then(function(users){
markAbsent(users, field);
return users;
});
}
}
var markAbsent = function(users, field){
users.forEach(function(user){
user[field]++;
user.save();
})
}