如何使用 Mongoose 在 mongodb 中存储动态对象数组?

Posted

技术标签:

【中文标题】如何使用 Mongoose 在 mongodb 中存储动态对象数组?【英文标题】:How can I store dynamic object array in mongodb using Mongoose? 【发布时间】:2019-05-29 11:31:49 【问题描述】:

我想将数据对象数组按以下格式存储到 mongodb 中。

'

certifications' = 
                                  'certification1' =  'name': ' SQL Server',
  'certification2' =  'name': 'Angular',
....

同样,我想将数据存储到 monogodb 字段数组中。

Certiftication3,certificates4 它是动态的,它来自客户端。

如何实现该功能请帮助我...

【问题讨论】:

所以来自客户端的数据看起来像这样:["name": "google", "name": "SQL Server"] 刚刚更新了代码sn-p,你可以看看... 【参考方案1】:

像这样制作一个猫鼬模型:

const certificationSchema = new Schema(
    name: 
        type: String,
        required: true,
        minlength: 3,
        maxlength: 255,
    
);

module.exports = mongoose.model('certification', certificationSchema);

在 API 路由中:

// certification.js

const Certification = require('../models/Certification');

// req.body = ["name": "google", "name": "SQL Server"]

router.post('/', (req, res, next) => 
        // Model.insertMany() inserts an array of documents into a MongoDB collection should all of them be validated
        Certification.insertMany(req.body)
        .then((certification) => 
            if (certification) 
                   res.json(certification);
             else 
                return next(new Error('Insertion failed'));
            
        ).catch((err) => 
            next(err['message']);
        )
);

【讨论】:

以上是关于如何使用 Mongoose 在 mongodb 中存储动态对象数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 typescript 中使用 mongoose 在 mongodb 中插入数据?

如何使用 Mongoose 在 mongoDB 中填充 3 个集合

如何在 mongoose/mongodb 查询子文档中使用 mapreduce?

如何在 mongoose/mongodb 查询子文档中使用 mapreduce?

如何使用 Mongoose 在 mongodb 中存储动态对象数组?

如何使用 mongoose 在 MongoDB 数组中推送数据