Sequelize необработанный запрос для возврата данных в виде массива - PullRequest
0 голосов
/ 24 марта 2020

мой текущий вывод:

{
    "students": [
        {
            "email": "studenthon@gmail.com"
        },
        {
            "email": "studentjon@gmail.com"
        }
    ]
}

То, что я пытаюсь достичь, это:


{
  "students" :
    [
      "studenthon@gmail.com", 
      "studentjon@gmail.com"
    ]
}

Как мне избавиться от «электронной почты» и поместить их все в один массив?

Мой необработанный запрос выглядит следующим образом:

    const studentsFound = await db.sequelize.query(
      "SELECT email FROM TeacherStudents INNER JOIN Students on TeacherStudents.studentId = Students.id WHERE teacherId IN (:teachersIds) GROUP BY studentId HAVING COUNT(DISTINCT teacherId) = :arrayLength ",
      {
        replacements: {
          teachersIds: ArrayOfIds,
          arrayLength: ArrayOfIds.length
        },
        type: db.sequelize.QueryTypes.SELECT
      }
    );

Мое текущее решение

    let commonStudentEmail = studentsFound.map(student => {
      return student.email;
    });

Но оно кажется немного избыточным, так как я считаю, что должно быть какой-то конфигурации.

1 Ответ

0 голосов
/ 24 марта 2020

Sequelize должен отличать одно поле от другого. Вот почему все поля в запросе названы так, что вы точно знаете, какие значения в каких полях вы получите.

...