我有动态json(未定义结构),必须将其存储到数据库中。
Github上也报告了错误。
https://github.com/Automattic/mongoose/issues/7733
userData = {"username:":"", "password":""};
期望: 保存的文档应该是这样的。 channelTaxonomyList 必须输入 Array
let data = {
"channelTaxonomyList": [
{ "categoryId": "10187", "taxonomyName": "Website Taxonomy" },
{ "categoryId": "10237", "taxonomyName": "Website Taxonomy" },
{ "categoryId": "10025", "taxonomyName": "Website Taxonomy" },
{ "categoryId": "10030", "taxonomyName": "Website Taxonomy" },
{ "categoryId": "10157", "taxonomyName": "Website Taxonomy" },
{ "categoryId": "10278", "taxonomyName": "Website Taxonomy" },
{ "categoryId": "10055", "taxonomyName": "Website Taxonomy" }
]
};
let newProduct = new product(data);
newProduct.save(function (err, savedProduct) {
if (err) {
console.log("err", err)
} else {
console.log("savedProduct", savedProduct)
}
})
实际结果: channelTaxonomyList转换为Object(具有键和值的Map Type)。 数组索引变为键,数组元素变为值。
{ _id: 5cbefb9d663e872f07f79467,
channelTaxonomyList:
[ { categoryId: '10187', taxonomyName: 'Website Taxonomy' },
{ categoryId: '10237', taxonomyName: 'Website Taxonomy' },
{ categoryId: '10025', taxonomyName: 'Website Taxonomy' },
{ categoryId: '10030', taxonomyName: 'Website Taxonomy' },
{ categoryId: '10157', taxonomyName: 'Website Taxonomy' },
{ categoryId: '10278', taxonomyName: 'Website Taxonomy' },
{ categoryId: '10055', taxonomyName: 'Website Taxonomy' } ],
__v: 0 }
正如我上面所描述的,json没有预定义的结构,密钥可能会在运行时更改,因此在 schema 中,我使用的是 {strict:false} 。 / p>
我的模式和模型是:
{ _id: 5cbefb85a09e6a1d4376ebec,
channelTaxonomyList:
{ '0': { categoryId: '10187', taxonomyName: 'Website Taxonomy' },
'1': { categoryId: '10237', taxonomyName: 'Website Taxonomy' },
'2': { categoryId: '10025', taxonomyName: 'Website Taxonomy' },
'3': { categoryId: '10030', taxonomyName: 'Website Taxonomy' },
'4': { categoryId: '10157', taxonomyName: 'Website Taxonomy' },
'5': { categoryId: '10278', taxonomyName: 'Website Taxonomy' },
'6': { categoryId: '10055', taxonomyName: 'Website Taxonomy' } },
__v: 0 }
节点版本: 8.10.0
@ types /猫鼬: 5.3.24
猫鼬:5.4.20
注意:在本地计算机(操作系统:Mac-High Sierra)上可以正常工作。 该错误可在AWS服务器(操作系统:Ubuntu:18.04.2 LTS)上产生