Clause WHERE (requête NoSQL)

S’APPLIQUE À : NoSQL

La clause WHERE facultative (WHERE <filter_condition>) spécifie la ou les conditions que les éléments JSON source doivent satisfaire pour que la requête les inclue dans les résultats. Un élément JSON doit évaluer les conditions spécifiées comme étant égales à true pour être pris en considération pour le résultat. La couche d'indexation utilise la clause WHERE pour déterminer le plus petit sous-ensemble d'éléments source pouvant faire partie du résultat.

Syntaxe

WHERE <filter_condition>  
<filter_condition> ::= <scalar_expression>
Description
<filter_condition> Spécifie la condition à remplir pour que les éléments soient renvoyés.
<scalar_expression> Expression représentant la valeur à calculer.

Notes

Pour plus d'informations sur les expressions scalaires, voir Expressions scalaires

Exemples

Ce premier exemple utilise une requête d'égalité simple pour renvoyer un sous-ensemble d'éléments. L'opérateur = est utilisé avec la clause WHERE pour créer un filtre basé sur l'égalité simple.

SELECT VALUE {
    employeeName: e.name,
    currentTeam: e.team
}
FROM
    employees e
WHERE
    e.team = "Hospitality"
[
  {
    "employeeName": "Jordan Mitchell",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Ashley Schroeder",
    "currentTeam": "Hospitality"
  },
  {
    "employeeName": "Tomas Richardson",
    "currentTeam": "Hospitality"
  }
]

Dans cet exemple suivant, un filtre plus complexe est composé d'expressions scalaires.

SELECT VALUE {
    employeeName: e.name,
    vacationDaysRemaining: e.vacationDays
}
FROM
    employees e
WHERE
    e.vacationDays >= 7
[
  {
    "employeeName": "Ana Bowman",
    "vacationDaysRemaining": 10
  },
  {
    "employeeName": "Madison Butler",
    "vacationDaysRemaining": 7
  }
]

Dans ce dernier exemple, une référence de propriété à une propriété booléenne est utilisée comme filtre.

SELECT VALUE {
    employeeName: e.name,
    isPartTime: e.partTime
}
FROM
    employees e
WHERE
    e.partTime
[
  {
    "employeeName": "Riley Ramirez",
    "isPartTime": true
  },
  {
    "employeeName": "Caleb Foster",
    "isPartTime": true
  }
]

Notes

  • Pour qu'un élément soit renvoyé, une expression spécifiée comme condition de filtre doit avoir la valeur true. Seule la valeur booléenne true satisfait la condition, toute autre valeur : undefined, null, false un nombre scalaire, un tableau ou un objet ne satisfait pas la condition.

  • Si vous incluez votre clé de partition dans la clause WHERE dans le cadre d'un filtre d'égalité, votre requête filtre automatiquement uniquement les partitions pertinentes.

  • Vous pouvez utiliser les opérateurs binaires pris en charge suivants :

    Opérateurs Exemples
    Arithmétiques +,-,*,/,%
    Au niveau du bit \|, &, ^, <<, >>>>>(décalage droit de remplissage zéro)
    Opérateurs logiques AND, , ORNOT
    Comparaison =, !=, , ><, <=, , >=,<>
    Chaîne \|\|(concaténer)