In Mongoose, if you want to automatically convert the string value of a field to uppercase when saving a document, you can achieve this by using the predefined set method within the model's schema. This method allows you to process the value before it is saved to the database.
Here is a simple example. Suppose you have a model for storing user information, and you want the name field (name) to be automatically converted to uppercase when saved.
First, define a Mongoose model:
javascriptconst mongoose = require('mongoose'); const Schema = mongoose.Schema; const userSchema = new Schema({ name: { type: String, set: v => v.toUpperCase() // Use the set method to convert the name to uppercase } }); const User = mongoose.model('User', userSchema);
In the above code, the set property is a function that accepts the original input value as a parameter (here, the user's input name) and returns the processed value (the name in uppercase format). Mongoose applies this function every time a document is created or updated, then stores the returned value in the database.
Next, when creating a new user and saving it to the database, the input name is automatically converted to uppercase:
javascriptconst newUser = new User({ name: "john doe" }); newUser.save(err => { if (err) return console.error(err); console.log('User saved with uppercase name:', newUser.name); // Output: "JOHN DOE" });
This approach is ideal for scenarios requiring automatic data formatting before database storage. It not only ensures data consistency but also reduces redundant code in the application for handling data.