node.js - Mongoose - 更新文档,添加新 key (具有严格的 :false)

标签 node.js mongodb mongoose mongoose-schema

我有以下 Mongoose 模型:

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!');
          });

      });
};

模式中未定义的键不会被存储;仅存储名称、internal_id、reference_code 和说明。

我怎样才能实现它?

最佳答案

您可以创建数据类型为混合对象的子文档。这将允许您动态插入/更新 key

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

这个(otherProps 键)将完成任务

关于node.js - Mongoose - 更新文档,添加新 key (具有严格的 :false),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35561512/

相关文章:

mongodb - 如何正确处理 Mongoose 模式迁移?

node.js - 如何在 mongodb 的输出查询上添加条件字段?

node.js - Firebase 基于子 Node 的日期范围查询

javascript - Node.js:telnet "Rock, Paper, Scissors"程序无法正常工作

mongodb - 有没有办法获得 Mini Mongo 的 GUI 表示?

node.js - 数组 Mongoose 中的默认值

node.js - 使用 ApolloServer 从 graphql-import 迁移到仅 graphql-tools 时遇到问题,指令停止工作

node.js - 在 AWS Lambda 中找不到模块 'nodemailer'

arrays - mongodb - 如果数组中的元素之一与查询匹配,则忽略文档

node.js - 使用 populate 查询两个模式