필터 구문 및 사용법 나열

이 가이드에서는 목록 필터 문법과 다양한 필터링 방법을 설명합니다. 리소스 유형

일부 API 메서드는 있습니다.

요약

이 섹션에서는 목록 필터 구문 구조를 간략히 설명합니다.

  • 필터는 expression가 포함된 문자열입니다. expression는 불리언 비교 조합:

    expression = ["NOT"] comparison { ("AND" | "OR") ["NOT"] comparison }
    expression = ( expression )
    
  • comparison는 리소스 필드와 값을 일치시킵니다. 모든 일반적인 비교 연산자입니다.

    comparison = name OP value
    OP = "<=" | "<" | ">=" | ">"  | "!=" | "=" | ":"
    

    has 연산자인 콜론 (:)은 문자열에 사용할 수 있으며 있습니다. 자세한 내용은 Has 연산자 섹션을 참고하세요.

  • 필터에 다음 유형의 값을 사용할 수 있습니다.

    • 숫자
    • 문자열
    • 괄호로 묶인 표현식
    value = number| string | "*" | "(" expression ")"
    
  • 문자열은 다음을 나타낼 수 있습니다.

    • 임의 텍스트
    • 부울
    • Enum 값
    • 타임스탬프

부울 표현식

expression = ["NOT"|"-"] comparison {["AND" | "OR"] ["NOT"|"-"] comparison}

작업은 다음 순서로 실행됩니다.

  1. NOT
  2. OR
  3. AND

예를 들어 다음 표현식은 동일합니다.

a OR NOT b AND NOT c OR d
(a OR (NOT b)) AND ((NOT c) OR d)

비교 사이에 AND 연산자를 생략할 수 있습니다. 예를 들어 필터는 동일합니다.

c=d AND e=f
c=d e=f

NOT 대신 하이픈 (-)을 사용할 수 있습니다. 한 쌍의 하이픈 (-)과 다음 비교 사이의 공백 예를 들어 다음 필터는 동일합니다.

NOT e=f
-e=f

비교

이 섹션에서는 다음과 같은 "name OP value" 비교를 설명합니다.

comparison = name OP value

어디서

OP = "<=" | "<" | ">=" | ">" | "!=" | "=" | ":"
name = identifier { "." identifier }
identifier = unquoted_text
value = number | string | "*" | "(" expression ")"

비교의 왼쪽에는 API 리소스 필드의 경로 이름이 있습니다. 이름은 마침표 (.)로 연결된 일련의 리소스 식별자로 구성됩니다. 각 필드 식별자 뒤에는 해당 필드의 다음 수준 이름이 옵니다. 대상 예를 들어 리소스에 다른 필드가 있는 item shape라는 필드가 있는 복잡한 필드 tool입니다. 이 기준의 필터 도형을 참조하려면 item.tool.shape이라는 이름을 사용합니다.

오른쪽은 일반적으로 필드의 이를 기준으로 비교합니다. 값 리터럴 유형을 참조하세요. 섹션을 참조하세요.

비교의 오른쪽을 괄호로 묶은 부울로 표현할 수도 있습니다. 다음 문자만 포함하는 리터럴 값 또는 불리언 표현식의 조합 리터럴 값 (앞에 NOT 유무) 왼쪽 이름과 비교 연산자가 각 값에 적용됩니다. 예를 들어 다음 필터는 동일합니다.

deal.name = ("test 1" OR "test 2")
deal.name = "test 1" OR deal.name = "test 2"

다음은 두 개의 동등한 객체 2개의 더 복잡한 예입니다. 필터:

deal.name = ("test 1" OR "test 2" AND (NOT "test3" OR "test4"))
(deal.name = "test 1" OR deal.name = "test 2") AND ( (NOT deal.name = "test3") OR deal.name = "test4")

값 리터럴 유형

비교 연산자의 오른쪽 값은 Number와 문자열 리터럴.

숫자

이 섹션에서는 숫자 리터럴의 표현을 설명합니다.

유형 정의
더블 부호('-') 유무와 관계없이 소수점을 포함하는 숫자 Double로 취급됩니다.
  • 1234.567
  • -789.0123
정수 소수점이 없는 숫자(기호 포함 여부에 관계없음) ('-')는 정수로 취급됩니다.
  • 1234
  • -789

문자열

이 섹션에서는 필터 문법

유형 정의
불리언 TRUE 또는 FALSE(대소문자에 관계없이)
  • TRUE
  • True
  • "true"
열거형 열거형 유형 리터럴의 이름입니다. enum은 대소문자를 구분합니다. FINALIZED과(와) Finalized이(가) 다릅니다.
문자열 UTF-8 인코딩 텍스트 또는 7비트 ASCII 텍스트를 포함하는 문자열. 삽입된 따옴표를 백슬래시로 이스케이프해야 합니다. 공백이 있는 따옴표로 묶이지 않은 문자열은 암시적 `AND`로 처리됩니다. 전체 단어 중에서 선택합니다.
  • name = "test \"double quotes\""
  • name=(ABC DEF)는 다음과 같습니다.
    name=ABC AND name=DEF
타임스탬프 ISO8601 표준 형식의 문자열입니다. "2014-10-02T15:01:23.045Z"

비교 연산자

다음은 비교 연산자입니다.

  • 이하: "<="
  • 미만: "<"
  • 이상: ">="
  • 초과: ">"
  • 같지 않음: "!="
  • 같음: "="
  • 포함: ":"

이 연산자는 Double, Integer, 불리언, enum, 타임스탬프 값에 적용됩니다. 있습니다.

연산자 있음

HAS 연산자 (:)를 사용하여 다음 특수 연산에 사용할 수 있습니다. 필드:

하위 문자열
HAS 연산자를 사용하여 문자열 열의 값을 연산자가 하위 문자열 연산 역할을 합니다. 예를 들어 name:"abcd"name이 다음을 포함하는 문자열인 모든 인스턴스를 반환합니다. "abcd"입니다.
존재 검사
특수 문자 *와 함께 HAS 연산자를 사용하는 경우 HAS 연산자는 null이 아닌 값을 확인합니다. 예를 들어 name:*name이 null이거나 누락되었거나 정의되지 않은 모든 인스턴스를 반환합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.
문자열이 아닌 값에 HAS 연산자를 사용하면 EQUALS (=) 연산자 예를 들어 isCompleted:trueisCompleted = true와 같은 방식으로 작동합니다.
반복되는 입력란

HAS (:) 연산자를 사용하여 반복되는 API 리소스를 필터링할 수 있습니다. 필드에 다음 조건을 충족하는 경우에 한해 사용할 수 있습니다.

  1. 필드 식별자 경로에 반복되는 구성요소가 한 개만 있습니다.
  2. 필드 경로의 마지막 식별자는 스칼라 유형입니다.

중첩된 반복 필드에 대한 필터링은 지원되지 않습니다.

예를 들면 다음과 같습니다.

item에는 "red"와 같은 문자열 값이 포함된 colors 필드가 있습니다. "blue", "yellow"

  • item.colors:("red")"red" colors 필드
  • item.colors:("red" "yellow")"red""yellow"colors 필드에 입력합니다.
  • item.colors:("red" OR "yellow")"red" 또는 "yellow"colors 필드에 입력합니다.

item에는 스칼라가 있는 복잡한 객체인 반복되는 tools 필드도 있습니다. 필드 shape(값은 "square" 또는 "round"일 수 있음)

  • item.tools.shape:("square")"square" 모양의 모든 항목을 반환합니다. 있습니다.
  • item.tools.shape:("square" "round")"square" 도형 도구와 "round" 도형 도구
  • item.tools.shape:("square" OR "round")"square" 도형 도구 또는 "round" 도형 도구
를 통해 개인정보처리방침을 정의할 수 있습니다.

채워지지 않은 중첩 필드

중첩 필드는 루트 수준 필드의 하위 필드입니다(예:shape item.tools.shapeitems.tools의 중첩 필드입니다.

루트 수준 필드의 기본값은 false입니다. 중첩된 필드는 기본적으로 채워지지 않습니다.

채워지지 않은 중첩 필드가 있는 객체는 음수로 반환되지 않음 필터 (!=개)

예를 들면 다음과 같습니다.

item.tools에는 값을 "SMALL", "MEDIUM"로 설정할 수 있는 size enum이 있습니다. 또는 "LARGE"

다음 항목이 있는 경우:

{
  "name": "item1",
  "tools": {
    "size": "MEDIUM"
  }
},
{
  "name": "item2",
  "tools": {
    "size": "LARGE"
  }
},
{
  "name": "item3"
}

제외 필터 "tools.size != SMALL"를 사용한 items.list 호출이 반환됩니다. 다음과 같습니다.

{
  "items": [
    {
      "name": "item1",
      "tools": {
        "size": "MEDIUM"
      }
    },
    {
      "name": "item2",
      "tools": {
        "size": "LARGE"
      }
    }
  ]
}

item3에 대해 item.tools.size가 설정되지 않았으므로 제외 필터는 다음에서 작동하지 않습니다. item3 객체를 반환합니다.

설명
externalDealId = "123456789" 문자열 값이 '123456789'인 externalDealId
advertiserId:93641

advertiserId = 93641
정수 값 93641을 갖는 advertiserId입니다.
isSetupComplete = true

isSetupComplete:TRUE

isSetupComplete = (True)
isSetupComplete가 TRUE와 같습니다.
updateTime > "2018-02-14T11:09:19.378Z" updateTime은 2018년 2월 14일 11:09:19.378(UTC) 이후입니다.
displayName = "proposal" AND proposalRevision = 3

displayName = "proposal" proposalRevision = 3
displayName 문자열의 'proposal' 값이 동일합니다. AND 제안서 수정은 3과 같습니다.
displayName = "proposal" OR proposalRevision = 3 displayName의 문자열 값은 'proposal'입니다. OR 제안서 수정은 3과 같습니다.
NOT displayName = "proposal"

displayName != "proposal"
displayName은(는) '제안서'와 같지 않습니다.
proposalState = (PROPOSED OR BUYER_ACCEPTED)

proposalState = PROPOSED OR proposalState = BUYER_ACCEPTED
proposalState에 PROPOSED 또는 Buyer_ACCEPTED와 같은 열거형 값이 있습니다.
proposalState = (PROPOSED AND BUYER_ACCEPTED)

proposalState = (PROPOSED BUYER_ACCEPTED)

proposalState = PROPOSED AND proposalState = BUYER_ACCEPTED

proposalState = PROPOSED proposalState = BUYER_ACCEPTED
proposalState에 PROPOSED 및 Buyer_ACCEPTED와 같은 열거형 값이 있습니다.
dealName = Test Deal INVALID 표현식
dealName = "Test Deal" dealName는 'Test Deal'과 같습니다.
dealName = (Test Deal) dealName는 '테스트'와 같습니다. 'Deal'과 같습니다.
dealName = ("Test1" OR "Test2")

dealName = "Test1" OR dealName = "Test2"
dealName는 'Test1'과 같음 또는 'Test2'와 같습니다.
dealName:* dealName is not null.
dealName:"test"

dealName:test
dealName에는 하위 문자열 'test'가 포함됩니다.
dealName:("A B")

dealName:"A B"
dealName에는 하위 문자열 'A B'가 포함됩니다.
dealName:(A B)

dealName:"A" AND dealName:"B"
dealName에 하위 문자열 'A'가 포함됨 하위 문자열 'B'가 있습니다.
dealName:("A" OR "B" AND "C")

dealName:("A" OR "B" "C")

dealName:"A" OR dealName:"B" AND dealName:"C"

dealName:"A" OR dealName:"B" dealName:"C"

(dealName:"A" OR dealName:"B") AND dealName:"C"

(dealName:"A" OR dealName:"B") dealName:"C"
dealName에는 하위 문자열 'A' 중 하나가 포함됩니다. 또는 'B' AND 하위 문자열 'C'도 포함
dealName:("A B" C)

dealName:"A B" AND dealName:"C"
dealName에 하위 문자열 'A B'가 포함됨 하위 문자열 'C'도 포함됩니다.
dealName:("A B" OR C D) dealName에는 하위 문자열 'A B' 중 하나가 포함됩니다. 또는 'C'와 하위 문자열 'D'도 포함됩니다.
dealName:(NOT "A" B)

NOT dealName:"A" AND dealName:"B"

(NOT dealName:"A") AND dealName:"B"

(NOT dealName:"A") dealName:"B"
dealName에 하위 문자열 'A'가 없음 하위 문자열 'B'도 포함됩니다.
dealName:(NOT "A" OR "B")

NOT dealName:"A" OR dealName:"B"
(NOT dealName:"A") OR dealName:"B"
dealName에 하위 문자열 'A'가 없음 또는 하위 문자열 'B'를 포함합니다.