首页 > 解决方案 > 在 mongoose 中动态创建 mongo 集合

问题描述

在 mongoose 中动态创建 mongo 集合。我尝试了以下代码:请建议我


function residenceModel(regionName){
  const residenceSchema = new Schema({
                key:String,
                value:String
            }, { strict: false });

  return mongoose.model(
          `residence_meta_${regionName}`,
           residenceSchema,
          `residence_meta_${regionName}`
       );
}

console.log(residenceModel);

exports.ResidenceModel = residenceModel;

标签: node.jsmongodbmongoose

解决方案


您可以通过这个简单的步骤创建动态模型

创建一个文件 dynamicModel.js

const mongoose = require('mongoose')
//import mongoose from 'mongoose'
const Schema = mongoose.Schema

const dynamicModel = (regionName) => {
 const residenceSchema = new Schema({
                key:String,
                value:String
            }, { strict: false })
  return mongoose.model(
            `residence_meta_${regionName}`,
            residenceSchema,
            `residence_meta_${regionName}`
        );
}
module.exports = { dynamicModel }
// export default { dynamicModel }

在您要包含或创建模型的文件中,假设app.js

// Please take care of path
const { dynamicModel }  = require("./dynamicModel")
//import { dynamicModel } from "./dynamicModel";
.....
.....
// User this method to create model and use It
const countryModel = dynamicModel("country")
countryModel.create({ key:"country", value:"USA" });

多次使用此方法,试一试,让我知道


推荐阅读