根据使用node.js和mongoose的输入将数据插入MongoDB到自定义集合中

时间:2019-07-13 02:11:29

标签: node.js mongodb mongoose collections

我想根据输入将文档插入到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时,都无法定义架构。 有没有一种方法可以根据输入的输入数据将数据插入不同的集合中,而无需定义新的架构?

1 个答案:

答案 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
}

我认为这是最好的方法