【发布时间】:2021-04-07 03:37:28
【问题描述】:
我有一个 Mongoose 模型,它应该存储 Objects of Objects。
这是我要存储的元素示例:
var company = new Company({
documents : {
"outerKey1": {"innerKey1": {name:"xxx"}, "innerKey2": {name:"yyy"}},
"outerKey2": {"innerKey1": {name:"xxx"}}
}
})
所以我将模型定义如下:
var InnerMapSchema = new Schema({
type : Map,
of : {
name: {type:String}
}
});
var OuterMapSchema = new Schema({
type : Map,
of : InnerMapSchema,
default:{}
});
var CompanySchema = new Schema({
documents: {type: OuterMapSchema}
});
反正它不工作,我一个文件都保存不了。
function save_MapElement(company_id, inner_key, outer_key, name)
{
var company = Company.findById(company_id); // it's async in reality
if(!company.documents) { company.documents = {}; }
if(!company.documents.get(outer_key) { company.documents.set(outer_key, {}); }
company.documents.get(outer_key).set(inner_key, {"name":name});
company.save();
}
我在尝试使用 .set() 时收到 TypeError: Cannot read property 'set' of undefined。
为什么?它是如何工作的?
$ npm mongoose --version
$ 6.4.1
【问题讨论】: