FreeBase MQL фильтр где значение! - PullRequest
7 голосов
/ 24 марта 2009

Я пытаюсь написать MQL-запрос, который отфильтровывает нулевые значения.

Запрос, который у меня есть (можно выполнить с помощью MQL Query Editor ):

[
  {
    "/common/topic/image" : [
      {
        "id" : null
      }
    ],
    "article" : [
      {
        "content" : null
      }
    ],
    "name" : "bill gates",
    "type" : "/common/topic"
  }
]

Результаты, которые я получаю:

[
  {
    "/common/topic/image" : [
      {
        "id" : "/guid/9202a8c04000641f8000000004fb4c01"
      },
      {
        "id" : "/wikipedia/images/commons_id/4486276"
      }
    ],
    "article" : [
      {
        "content" : null
      },
      {
        "content" : "/guid/9202a8c04000641f800000000903535d"
      }
    ],
    "name" : "Bill Gates",
    "type" : "/common/topic"
  }
]

Я пытаюсь выяснить, как можно отфильтровать совпадение «content»: null в массиве «article» во время запроса. Я просмотрел документацию по MQL, но не нашел четкого способа сделать это.

1 Ответ

10 голосов
/ 24 марта 2009

Чтобы отфильтровать статьи, которым не назначен какой-либо контент, вам придется расширить атрибут id контента и установить для необязательной директивы значение false.

[
  {
    "/common/topic/image" : [
      {
        "id" : null
      }
    ],
    "article" : [
      {
        "content" : {
          "id" : null,
          "optional" : false
        }
      }
    ],
    "name" : "bill gates",
    "type" : "/common/topic"
  }
]

Это даст вам следующий результат:

[
  {
    "/common/topic/image" : [
      {
        "id" : "/guid/9202a8c04000641f8000000004fb4c01"
      },
      {
        "id" : "/wikipedia/images/commons_id/4486276"
      }
    ],
    "article" : [
      {
        "content" : {
          "id" : "/guid/9202a8c04000641f800000000903535d"
        }
      }
    ],
    "name" : "Bill Gates",
    "type" : "/common/topic"
  }
]

Для получения дополнительной информации об использовании дополнительной директивы см. Документацию здесь .

...