JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://d1l4stvdmqmdzl.cloudfront.net/4.0.0-rc2/mongoose.min.js"></script>
<div id="output">   
</div>

JavaScript

var print = function(msg) {
    document.getElementById('output').insertAdjacentHTML('beforeend', msg + '<br>');
};

var primeNumbersSchema = new mongoose.Schema({
    primes: [{
        type: Number,
        min: 2,
        validate: {
            validator: function(v) {
                for (var i = 2; i <= Math.sqrt(v); ++i) {
                    if (v % i === 0) {
                        return false;
                    }
                }
                return true;
            },
            msg: '{VALUE} is not prime!'
        }
    }]
});

var doc = new mongoose.Document({ primes: [2] }, primeNumbersSchema);

/*
 * Output looks like:
 * No validation error: null
 * Error: ValidationError: 4 is not prime! 
 */
doc.validate(function(err) {
    print('No validation error: ' + err);
    doc.primes.push(4);
    doc.validate(function(err) {
        print('Error: ' + err); 
    });
});