首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用node.js和mongoose根据输入将数据插入到自定义集合的MongoDB中

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

Stack Overflow用户
提问于 2019-07-13 10:11:29
回答 1查看 158关注 0票数 1

我想根据输入将文档插入到MongoDB集合中。例如,如果为nid = 1,则将文档插入到集合'One'中;如果为nid = 2,则将文档插入到集合'Two'中,依此类推。

我将使用的模式

代码语言:javascript
运行
复制
{
    nid: Number,
    name: String
}

我尝试用集合名初始化node.js中的模式,集合名被定义为具有基于输入的值的变量。

代码语言:javascript
运行
复制
var collVar = 'One';

var newSchema = new mongoose.Schema({
    nid: Number,
    name: String
},{collection: collVar});

但是,不能在每次有新数据要插入到MongoDB中时都定义模式。有没有一种方法可以在不定义新模式的情况下根据输入的数据将数据插入到不同的集合中?

EN

回答 1

Stack Overflow用户

发布于 2019-07-13 17:19:36

您可以将nid保存为number并使用getter (https://mongoosejs.com/docs/tutorials/getters-setters.html)将其转换为字符串。

示例

代码语言:javascript
运行
复制
const newSchema = new Schema({
  nid: {
    type: Number,
    get: toComprehensiveString
  }
});

function toComprehensiveString(nid) {
 if (nid === 1) {
   return 'One';
 }
 // or use a library / map here
}

我认为这是最好的方式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57015654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档