У меня есть список providerArray, и каждый providerId содержит массив категорий, таких как доктор, лаборатория, больница и т. Д. Я сохранил эти значения в модели обратной связи.
Вот документ:
{
"_id" : ObjectId("5ceba7c419b48423e452972a"),
"userId" : ObjectId("5ceba7c419b48423e4529727"),
"providers" : [
"1689736266",
"1598763690",
"1528069614",
"1831364272",
"1548463045",
"1245301159",
"1386616399",
"1790775971",
"1629462130",
"1992169783"
],
"countByType" : {
"doctors" : 6,
"labs" : 0,
"hospitals" : 0,
"imagingCenters" : 0,
"other" : 4
}
}
Что я ищу, так это то, что если приходит новый providerId, то я перебираю категории и говорю, что если это доктор, то увеличиваю его на единицу. Если в массиве категорий содержится [доктор, лаборатория], выполните цикл по каждому из них и увеличьте значение доктора и лаборатории в модели с обратной связью.
Как это сделать. Я застрял с этим на пару дней.
let searchForProviders = await esHelper.getProvidersById(combinedProviderArray, true);
let inc = {};
searchForProviders.forEach((providers) => {
let categories = providers.category;
categories.forEach((cat) => {
// Combining categories
categoryArray = categoryArray.concat(cat);
categoryArray.forEach((x) => {
switch(x) {
case 'doctor':
// code block
break;
case 'lab':
// code block
break;
case 'imagingCenter':
// code block
break;
case 'hospital':
// code block
break;
case 'other':
// code block
inc.other =
break;
default:
// code block
}
});
});
});
Как я могу использовать $ inc в loopback. Я проверил документацию, но для этого сценария я не уверен, как этого добиться. Любая помощь будет очень признательна.