Claro que é possível... - sugerindo o uso de express como estrutura do servidor:
import mongoose from 'mongoose';
import { Router } from 'express';
const router = Router();
router.post('/newModel/', createNewModel);
function createNewModel(req, res, next) {
const Schema = mongoose.Schema;
// while req.body.model contains your model definition
mongoose.model(req.body.modelName, new Schema(req.body.model));
res.send('Created new model.');
}
...mas tenha cuidado! Abrir uma maneira para que os usuários modifiquem seu banco de dados com tanta facilidade geralmente não é uma boa ideia.
Atualização: O formato é exatamente o mesmo que você deseja ter no parêntese:
{
"title": { "type": "String", "required": "true" },
"content": { "type": "String", "required": "true" },
"slug": { "type": "String", "required": "true" }
}