我想根据输入将文档插入到MongoDB集合中。
例如,如果nid = 1
,我想将文档插入到集合'One'
中,如果nid = 2
,我想将文档插入到集合'Two'
中,依此类推。>
我将使用的模式
{
nid: Number,
name: String
}
我试图用定义为变量的集合名称初始化node.js中的模式,该变量具有基于输入的值。
var collVar = 'One';
var newSchema = new mongoose.Schema({
nid: Number,
name: String
},{collection: collVar});
但是,每次有新数据插入MongoDB时,都无法定义架构。 有没有一种方法可以根据输入的输入数据将数据插入不同的集合中,而无需定义新的架构?
答案 0 :(得分:0)
您可以将nid保存为数字,并使用吸气剂(https://mongoosejs.com/docs/tutorials/getters-setters.html)将其转换为字符串。
示例
const newSchema = new Schema({
nid: {
type: Number,
get: toComprehensiveString
}
});
function toComprehensiveString(nid) {
if (nid === 1) {
return 'One';
}
// or use a library / map here
}
我认为这是最好的方法