Digamos que tengo este esquema.
const mongoose = require("mongoose"); const Schema = mongoose.Schema; const TestSchema = new Schema({ language: { required: true, default: 'eng', }, }); // Compile model from schema const TestModel = mongoose.model("Test", TestSchema); ¿Cómo puedo configurar este esquema para que el campo de idioma solo acepte su valor como eng o hbrw ? Si recibe algún otro valor, devolvería un error.
Sé que se puede hacer explícitamente con if else, pero quiero saber si se puede integrar en el esquema.
Así es como se hace:
const mongoose = require("mongoose"); const Schema = mongoose.Schema; const TestSchema = new Schema({ language: { required: true, enum: ['eng', 'hbrw'] default: 'eng', }, }); // Compile model from schema const TestModel = mongoose.model("Test", TestSchema); El campo de enumeración valida los datos entrantes contra la matriz de datos proporcionada en el campo de enum .
Gracias @turivishal por esta solución.