ich ein Mungo-Schema haben, die wie folgt aussieht:Mongoose Feld zurückgesetzt
var mongoose = require('mongoose');
var _ = require('lodash');
var Schema = mongoose.Schema;
var shopSchema = new mongoose.Schema({
name: {type: String, trim: true},
description: {type: String, trim: true},
rating: Number,
ratingsData: [{type: Number}]
});
shopSchema.methods.rate = function(rating){
this.ratingsData.push(rating);
this.rating = _.mean(this.ratingsData);
return this.ratingsData;
}
module.exports = mongoose.model('Shop', shopSchema);
Die Rate Methode soll einen Wert an die ratingsData Feld übergeben anhängen und dann den Mittelwert des Arrays zurück. Das Problem, das ich habe, ist, dass jedes Mal, wenn die Methode aufgerufen wird, this.ratingsData
nur ein leeres Array ist. Die vorherigen Werte werden aus irgendeinem Grund nicht gespeichert. Daher ist der Durchschnitt, den ich bekomme, immer die Bewertung, die an die Methode weitergegeben wird.
Was mache ich falsch?
Wenn Sie entweder versuchen, Daten in die Datenbank einfügen tun Einfügen oder Speichern in der Datenbank. Vor dem Ereignis versuchen, Daten abzurufen und Mittelwerte zu berechnen. Ich sehe keine Speicherfunktion. –
Sie können Operationen ausführen, nachdem Sie Wert in die db eingefügt haben. Ich kann nicht verstehen, wie Sie versuchen, beide Dinge gleichzeitig zu erreichen. –