我想知道是否有可能使用Mongoose模式(例如Node.js和Angular)在mongodb中动态创建表。
创建模式的基本方法是在Node.js中显式创建模型,如下所示:
import mongoose from 'mongoose';
const Schema = mongoose.Schema;
const postSchema = new Schema({
title: { type: 'String', required: true },
content: { type: 'String', required: true },
slug: { type: 'String', required: true }
});
let Post = mongoose.model('Post', postSchema);
是否可以通过使用来自Angular前端的用户输入来动态创建此架构?
答案 0 :(得分:2)
确定有可能... -建议使用express作为服务器框架:
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.');
}
...但是请小心!通常,打开一个让用户如此轻松地修改数据库的方法并不是一个好主意。
更新:该格式与您希望在括号中使用的格式完全相同:
{
"title": { "type": "String", "required": "true" },
"content": { "type": "String", "required": "true" },
"slug": { "type": "String", "required": "true" }
}