Ich möchte einige Felder in meinen Dokumenten als Kleinbuchstaben speichern. So ich ein Schema wieMongoose Kleinbuchstaben Flag wird ignoriert, während findOneAndUpdate()
let body = new Schema({
id: { type: Number, unique: true },
group_name: { type: String, lowercase: true },
type_name: { type: String, lowercase: true },
full_spectral_class: { type: String, lowercase: true },
spectral_class: { type: String, lowercase: true },
spectral_sub_class: { type: String, lowercase: true },
luminosity_class: { type: String, lowercase: true },
luminosity_sub_class: { type: String, lowercase: true }
})
erstellt Wenn ich save()
verwende Werte einfügen, werden alle Werte als Klein Strings gespeichert zu werden. Aber wenn ich versuchte, mit findOneAndUpdate()
zu aktualisieren, werden die Werte erhalten, wie es ist. Ich möchte lieber nicht alle Felder manuell in Kleinbuchstaben konvertieren, da es eine ganze Reihe von Feldern und Schemata gibt, die demselben Stil folgen.
Sie müssen wahrscheinlich ['runSettersOnQuery' auf' true' setzen, wenn Sie die Abfrage ausführen (http://mongoosejs.com/docs/api.html#model_Model.findOneAndUpdate). – str
Das hat irgendwie funktioniert. Die Verwendung von 'runSettersOnQuery: true' in' schema.findOneAndUpdate (query, config) 'hat nicht funktioniert. Ich musste es als eine Option verwenden, während ich das Schema als [hier] definierte (http://mongoosejs.com/docs/queries.html). –