[英]Push Data into Array in Loopback Model
我是Loopback的新手,正在从事具有以下模型和文档的项目。
{
"_id" : ObjectId("5c9b44cc618c1bbe8780e38b"),
"userId" : ObjectId("5bae3ea215e11e0018b914c1"),
"providers" : [
"1629132790",
"1467401216",
"1356405641",
"1952465288",
"1447314513",
"1003803495"
],
"countByType" : {
"doctors" : 2,
"laboratories" : 3,
"hospitals" : 1,
"imagingCenters" : 0
}
}
我基本上是在尝试向基类Model中的数组添加新项。 创建新用户时,将为“提供者”添加一个空数组。 没有提供者的模型。 它只是一个可以容纳提供者列表的数组。
如果providerId不存在,如何将新的providerId添加到提供商列表中(将字符串添加到列表中)?
这是我的提供者模型
{
"name": "UserProviders",
"base": "Model",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"userId": {
"type": "objectId",
"required": true,
"index": {
"unique": true
}
},
"providers": {
"type": [
"any"
],
"default": []
},
"countByType": {
"type": "object",
"default": {
"doctors": 0,
"labs": 0,
"hospitals": 0,
"imagingCenters": 0
}
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
任何帮助将非常感激。
我将做两件事:首先,我将添加一个自定义模型方法来添加新的提供程序(接受一个字符串或字符串数组),例如:
const provider = async Provider.findOne({id: someId});
provider.addProviders([value1, value2]);
await provider.save();
然后,为确保它不会保存垃圾值,我将添加一个自定义验证程序,该验证程序在保存实例并引发错误或删除重复项之前检查数组中是否存在重复项。 您可以在此处阅读如何向模型添加自定义验证功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.