node.js - 在 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;
解决方案
您可以通过这个简单的步骤创建动态模型
创建一个文件 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" });
多次使用此方法,试一试,让我知道
推荐阅读
- java - JavaFx:组合框动态文本更改
- javascript - 有没有办法使用 React 中的 interweave 库来渲染颜色?
- r - 为数据框中的每个组选择前 N 行
- android - 如何以编程方式更改单选按钮的圆圈颜色?
- angular - iframe (WooCommerce) 并在 Ionic 应用程序中使用 Facebook 登录
- mongodb - MongoDB mongod 未运行
- c# - 使用 Microsoft Graph 创建新日历
- c++ - C++ boost::asio::ip::tcp::acceptor 有时不接受连接器?
- c++ - 错误:无法解析对重载函数的引用;你的意思是叫它吗?
- magento - Stripe Payment - 卸载噩梦