Как получить массив внутри массива на основе значения с помощью firestore - PullRequest
0 голосов
/ 08 июля 2019

У меня есть структура документа с именем session, которая содержит массив с именем seances, в котором есть массив с именем student.

Я хотел бы получить все документы, где заданное значение находится в массиве студентов;например, если значением является Алиса, и у меня есть следующие 3 документа:

Документ 1

{
      name: "doc1"
      seances: [
       {
        date: "02/01",
        students: ["Alice","John","Brahim"]
        }
                ]
    }

Документ 2

{
          name: "doc2"
          seances: [
            {
            date: "12/04",
            students: ["Alice","John","Brahim"]
            }
          ]
        } 

Документ 3

{
      name: "doc3"
      seances: [
        {
       date: "21/03",
       students: ["Arysse","John","Brahim"]
        },
        {
        date: "22/05",
        students: ["Steward","John","Brahim"]
        }
              ]
            }

В этом случае он должен вернуть Документ 1 и Документ 2, поскольку он содержит значение «Алиса» внутри массива «Студенты», который содержитсеансы массива, несмотря на другие поля, такие как дата.

Можно ли сделать это, используя только оператор where с firestore?

1 Ответ

0 голосов
/ 08 июля 2019

Это невозможно. Вы не можете запрашивать содержимое массивов внутри других массивов объектов. Чтобы удовлетворить этот запрос, вам нужно сохранить другое поле с массивом, который вы хотите найти, и использовать запрос array-содержа для этого поля.

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