Я пытаюсь проверить весь документ в коллекции, используя проверки, объявленные в документе схемы. Можно ли проверить их напрямую, передав их в схему и вернув true, если документ действителен?
моя схема goose выглядит следующим образом
export class sampleSchema {
schemaDefinition = {
key: {
type: String,
unique: true,
min: 2,
max: 50,
},
key1: {
type: String,
min: 2,
max: 50,
};
}
}
действительные данные
{
key:'sampleName'
key1:'sampleName1'
}
можно ли передать действительные данные в образец схемы, чтобы убедиться, что они соответствуют всем проверки и возвращают истину.
Я могу успешно использовать validate (), но он проверяет только регулярное выражение, не учитывая условия min, max и типов, объявленные в схеме.
sample. js
const mongoose = require('mongoose');
async function validateSample(sample) {
try {
await sample.validate();
console.log("validation passed");
return true;
} catch (error) {
console.log(error.message);
return false;
}
}
async function execMethod(){
var userSchema = new mongoose.Schema({
phone: {
type: String,
min: 5,
max: 10,
validate: {
validator: function(v) {
return /^\d+$/.test(v);
},
message: props => `${props.value} is not a valid phone number!`
},
required: [true, 'User phone number required']
}
});
var User = mongoose.model('user', userSchema);
var user = new User({phone: '12345'});
var user1 = new User({phone: '1234'});
const result = await validateSample(user);
const result1 = await validateSample(user1);
console.log(result); // returns true
console.log(result1); // returns true //but it should return false as it fails to match min condition
}
execMethod()