Найдите все различные значения во вложенном массиве JSON

#json #azure #nosql #azure-cosmosdb #azure-cosmosdb-sqlapi

#json #azure #nosql #azure-cosmosdb #azure-cosmosdb-sqlapi

Вопрос:

Справочная информация:

Я хочу найти все различные значения для моего ключа «state» в этом вложенном массиве

       {
          "id": "123"
          "feedback" : {
             "Features" : [
                              {
                                "state":"new"
                              }
        

                          ]
     }
  

Это то, что я пытался сделать:

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

    SELECT DISTINCT c.feedback.Features  FROM c 
   WHERE ARRAY_CONTAINS(c.feedback.Features, {state}, true)
  

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

Ответ №1:

Пожалуйста, попробуйте этот sql:

 SELECT DISTINCT d.state FROM c join d in c.feedback.Features
  

если вам просто нужно значение состояния, вы можете попробовать это:

 SELECT DISTINCT VALUE d.state FROM c join d in c.feedback.Features
  

Надеюсь, это может вам помочь.

Комментарии:

1. Это работает! Спасибо @stevezhao. Откуда вы знаете, как обозначать контейнеры (d, c ??) Мне интересно, не могли бы вы предложить ответ на мой последний вопрос? У меня возникает препятствие