我有以下猫鼬模型:
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!');
});
});
};
架构中未定义的键不是存储;只存储name,internal_id,reference_code和description。
我怎么能实现它?
答案 0 :(得分:2)
您可以创建一个数据类型为混合对象的子文档。这将允许您动态插入/更新密钥
var companySchema = new mongoose.Schema ({
name: String,
long_name: String,
address: String,
telephone: String,
mobile_phone: String,
otherProps : {}
})
这个(otherProps键)将完成任务