我想根据输入将文档插入到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中时都定义模式。有没有一种方法可以在不定义新模式的情况下根据输入的数据将数据插入到不同的集合中?
发布于 2019-07-13 17:19:36
您可以将nid保存为number并使用getter (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
}我认为这是最好的方式
https://stackoverflow.com/questions/57015654
复制相似问题