Фильтр для одного атрибута (массива) для одного из его значений (json) - PullRequest
0 голосов
/ 20 сентября 2019

Имея следующую запись

   {
      "name": "
 Festões Plástico, 12mt x 17cm - Festas Populares",
      "categories": [
        "Festas",
        "Casamentos",
        "Decorações"
      ],
      "hierarchicalCategories": {
        "lvl0": "Festas",
        "lvl1": "Festas > Casamentos",
        "lvl2": "Festas > Casamentos > Decorações"
      },
      "description": "",
      "brand": "Misterius",
      "price": 14.94,
      "stock": "Disponível",
      "prices": [
        {
          "value": 12,
          "type": "specificValue",
          "family": "fatos",
          "subfamily": "example"
        },
        {
          "value": 13,
          "type": "specificValue13",
          "family": "fatos13",
          "subfamily": "example13"
        },
        {
          "value": 14,
          "type": "specificValue14",
          "family": "fatos14",
          "subfamily": "example14"
        },
        {
          "value": 15,
          "type": "specificValue15",
          "family": "fatos15",
          "subfamily": "example15"
        },
        {
          "value": 16,
          "type": "specificValue16",
          "family": "fatos16",
          "subfamily": "example16"
        }
      ],
      "color": [
        {
          "name": "Amarelo",
          "label": "Amarelo,#FFFF00",
          "hexa": "#FFFF00"
        },
        {
          "name": "Azul",
          "label": "Azul,#0000FF",
          "hexa": "#0000FF"
        },
        {
          "name": "Branco",
          "label": "Branco,#FFFFFF",
          "hexa": "#FFFFFF"
        },
        {
          "name": "Laranja",
          "label": "Laranja,#FFA500",
          "hexa": "#FFA500"
        },
        {
          "name": "Verde Escuro",
          "label": "Verde Escuro,#006400",
          "hexa": "#006400"
        },
        {
          "name": "Vermelho",
          "label": "Vermelho,#FF0000",
          "hexa": "#FF0000"
        }
      ],
      "specialcategorie": "",
      "reference": "3546",
      "rating": 0,
      "free_shipping": false,
      "popularity": 0,
      "objectID": "30"
    }

Теперь, выполнив поиск "Festas Populares", вернет запись и ее атрибуты, возможно ли также отфильтровать для одного массива атрибутов как "цены", чтобы вернуть только одинJSON.например, "values.type" = "specificValue14" и "family" = "fatos14" и "family" = "fatos" и "subfamily" = "example"

{
“value”: 14,
“type”: “specificValue14”,
“family”: “fatos14”,
“subfamily”: “example14”
}

возвращаемая запись будет такой:

 {
          "name": "
 Festões Plástico, 12mt x 17cm - Festas Populares",
          "categories": [
            "Festas",
            "Casamentos",
            "Decorações"
          ],
          "hierarchicalCategories": {
            "lvl0": "Festas",
            "lvl1": "Festas > Casamentos",
            "lvl2": "Festas > Casamentos > Decorações"
          },
          "description": "",
          "brand": "Misterius",
          "price": 14.94,
          "stock": "Disponível",
          "prices": [
            {
              "value": 14,
              "type": "specificValue14",
              "family": "fatos14",
              "subfamily": "example14"
            }
          ],
          "color": [
            {
              "name": "Amarelo",
              "label": "Amarelo,#FFFF00",
              "hexa": "#FFFF00"
            },
            {
              "name": "Azul",
              "label": "Azul,#0000FF",
              "hexa": "#0000FF"
            },
            {
              "name": "Branco",
              "label": "Branco,#FFFFFF",
              "hexa": "#FFFFFF"
            },
            {
              "name": "Laranja",
              "label": "Laranja,#FFA500",
              "hexa": "#FFA500"
            },
            {
              "name": "Verde Escuro",
              "label": "Verde Escuro,#006400",
              "hexa": "#006400"
            },
            {
              "name": "Vermelho",
              "label": "Vermelho,#FF0000",
              "hexa": "#FF0000"
            }
          ],
          "specialcategorie": "",
          "reference": "3546",
          "rating": 0,
          "free_shipping": false,
          "popularity": 0,
          "objectID": "30"
        }

для некоторого контекста продукт может иметь несколько связанных цен, для конкретного пользователя, или в один прекрасный день существует кампания, предоставляющая скидку, и т. Д., Поэтому в таких случаях требуется фильтровать цену, связанную с продуктом / записью.

1 Ответ

0 голосов
/ 21 сентября 2019

Нет, это невозможно с Алголией.Записи всегда возвращаются с атрибутами, указанными внутри attributesToRetrieve.Эти атрибуты возвращаются полностью.

...