首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串数组存储到mongoDB集合中

将字符串数组存储到mongoDB集合中
EN

Stack Overflow用户
提问于 2021-01-14 19:24:42
回答 1查看 614关注 0票数 0

我对MongoDBmongoose非常陌生,我有一个模型名叫agent

agent.model.js

代码语言:javascript
复制
const mongoose = require('mongoose')

const agentSchema = new mongoose.Schema({
    agent: {
        type: String,
        required: true
    }
})

const Agent = mongoose.model('Agent', agentSchema)

module.exports = Agent;

现在我有了一个字符串数组:

代码语言:javascript
复制
const agentName = ['john', 'alex', 'david'];

现在,我想将这个数组作为一个单独的代理存储到mongoDB中。

就像这样:

代码语言:javascript
复制
[
    {
        "_id": "6000977d9b94f52960955066",
        "agent": "john",
        "__v": 0
    },
    {
        "_id": "6000977d9b94f52960955067",
        "agent": "alex",
        "__v": 0
    },
    {
        "_id": "6000977d9b94f52960955068",
        "agent": "david",
        "__v": 0
    }
]

注意:首先,我使用循环将字符串数组转换为对象数组,如下所示:

代码语言:javascript
复制
agentName = agentName.map((e) => {return {agent: e}})

//输出上述代码行

代码语言:javascript
复制
[ { agent: 'Alex Watson' },
  { agent: 'John Snow' },
  { agent: 'Rita Ora' } ]

然后我要拯救agentName。

,但我正在寻找一些更好的方法,比如不需要将字符串数组转换为对象数组.

EN

回答 1

Stack Overflow用户

发布于 2021-01-14 23:09:20

必须使用insertMany()函数向集合中插入多个文档。它接受要插入到集合中的array of documents。就像下面的代码一样,所以必须创建一个下注数组,这是您创建的

注意:在您的问题中定义了const agentName下一步,将映射的结果赋值给常量变量,所以这是错误的

代码语言:javascript
复制
const agentName = ['john', 'alex', 'david'];
let arr = agentName.map((e) => {return {agent: e}})

Agent.insertMany(arr).then(function(){ 
    console.log("Data inserted")  // Success 
}).catch(function(error){ 
    console.log(error)      // Failure 
}); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65725643

复制
相关文章

相似问题

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