Сохранение данных в базе данных с отображением - PullRequest
2 голосов
/ 22 декабря 2019

Я просто передаю массив в firebase для хранения данных, но это не эффективный способ запроса данных из массива. Итак, я планирую хранить данные в формате отображения. Но не уверен, как это сделать.

{
   "ClassDetails": 
   [
     {
       "Code": "CIS695",
       "Instructor": "Dr. Antony",
       "Location": "BB444",
       "Name": "Capstone project"
     }
   ],
   "PersonalDetials": [
     {
       "Email": "rshah2@murraystate.edu",
       "FName": "Ravi",
       "LName": "Shah",
       "Major": "MSIS"
     }
   ]
 }

Хотите изменить в этом формате

{
   "ClassDetails": 
     "CIS695"{
       "Code": "CIS695",
       "Instructor": "Dr. Antony",
       "Location": "BB444",
       "Name": "Capstone project"
       }
       "CIS690"{
       "Code": "CIS690",
       "Instructor": "Dr. Smith",
       "Location": "BB444",
       "Name": "Project Management"
       }
   "PersonalDetials": 
     {
       "Email": "rshah2@murraystate.edu",
       "FName": "Ravi",
       "LName": "Shah",
       "Major": "MSIS"
     }
 }

Попробовал все, но не смог найти правильное решение. Структура данных в базе данных Firebase

Ответы [ 2 ]

0 голосов
/ 22 декабря 2019

Учитывая, что структура data не изменится, попробуйте:

const data = {
  "ClassDetails": [{
    "Code": "CIS695",
    "Instructor": "Dr. Antony",
    "Location": "BB444",
    "Name": "Capstone project"
  }],
  "PersonalDetials": [{
    "Email": "rshah2@murraystate.edu",
    "FName": "Ravi",
    "LName": "Shah",
    "Major": "MSIS"
  }]
};

const mappedData = { ...data
};
mappedData.ClassDetails = {};
for (const item in data.ClassDetails) {
  const itemToAdd = { ...data.ClassDetails[item]
  };
  mappedData.ClassDetails[itemToAdd.Code] = itemToAdd;
}
mappedData.PersonalDetials = mappedData.PersonalDetials[0];

console.log(mappedData);
0 голосов
/ 22 декабря 2019

Попробуйте так:

  output = {};
  constructor() {
    let classDetails = {};
    this.input.ClassDetails.forEach(item => {
      classDetails[item.Code] = item;
    });
    this.output["ClassDetails"] = classDetails;
    this.output["PersonalDetials"] = this.input.PersonalDetials[0];
    console.log(this.output);
  }

Рабочая демоверсия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...