如何使用 nodejs 动态创建 Mongodb 模式

tot*_*tto 5 javascript mongoose mongodb node.js

我想知道是否可以使用 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);
Run Code Online (Sandbox Code Playgroud)

是否可以使用来自 Angular 前端的用户输入动态创建此架构?

noC*_*nce 5

当然有可能...... - 建议使用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.');
}
Run Code Online (Sandbox Code Playgroud)

……不过请小心!为用户提供一种如此轻松地修改数据库的方式通常不是一个好主意。

更新:格式与您想要的括号中的格式完全相同:

{
  "title": { "type": "String", "required": "true" },
  "content": { "type": "String", "required": "true" },
  "slug": { "type": "String", "required": "true" }
}
Run Code Online (Sandbox Code Playgroud)