猫鼬-更新文档,添加新键(具有strict:false)

埃吉迪

我有以下猫鼬模型:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var companySchema = new mongoose.Schema({
    name: String, 
    long_name: String,
    address: String,
    telephone: String,
    mobile_phone: String,
    fax: String,
    email: String,
    url: String,
    config:{
        language: String,
        account: String
    },
    items:[{
        name: String,
        internal_id: String,
        reference_code: String,
        description: String
    }]
},{ timestamps: true, strict: false });

var Company = mongoose.model('Company', companySchema);

module.exports = Company;

好的想法是让每个用户在items数组中插入自己的字段。例如,用户将创建一个具有多个新键/值对的新项目。我将新项目存储在items数组中:

var Company = require('mongoose').model('Company');

exports.createItem = function(req, res, next) {

        var newitem = {
            "name": "Syringe Needels",
            "internal_id": "ID00051",
            "reference_code": "9506",
            "description": "My description",
            "batch": "100",
            "room": "240",
            "barcode": "9201548121136"
        };


      Company.findById(req.company, function(error, company) {
           company.items.push(newitem);
           company.save(function(err, doc){
            return res.status(200).send('The new item has been stored!');
          });

      });
};

未存储在架构中未定义的键;仅存储名称,内部ID,参考代码和描述。

我该如何实现?

塔哈

您可以创建一个数据类型为混合对象的子文档。这将使您动态地插入/更新密钥

var companySchema = new mongoose.Schema ({
    name: String, 
    long_name: String,
    address: String,
    telephone: String,
    mobile_phone: String,
    otherProps : {}
})

这(otherProps键)将完成任务

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章