Partager via


Filtrage d’une collection

Le paramètre de chaîne de demande filter permet aux clients de filtrer une collection d’éléments renvoyés par une demande. L’expression spécifiée par filter est évaluée pour chaque ressource de la collection, et seuls les éléments où l’expression est évaluée sur True sont inclus dans la réponse. Les éléments avec des expressions dont la valeur est False ou Null, ou les éléments faisant référence à des propriétés qui ne sont pas disponibles, sont omis de la réponse.

L’API OneDrive prend en charge uniquement le sous-ensemble suivant de la syntaxe officielle du filtre OData 4.0.

Remarque : Les exemples n’incluent pas de codage d’URL approprié pour améliorer la lisibilité. La syntaxe du filtre actuel doit être codée au format URL.

Exemple : renvoi de tous les produits dont le prix est inférieur à 10,00 $

GET /Products?filter=Price lt 10.00

La valeur de l’option filter est une expression booléenne.

Opérateurs pris en charge

L’API OneDrive prend en charge l’ensemble des opérations suivantes dans la syntaxe filter.

Opérateur Description Exemple
eq Equal city eq 'Redmond'
ne Différent de city ne 'London'
gt Supérieur à price gt 20
ge Supérieur ou égal à price ge 10
lt Inférieur à price lt 20
le Inférieur ou égal à price le 10
and AND logique price le 200 and price gt 3.5
or OR logique price le 3.5 or price gt 200
( ) Regroupement des priorités (priority eq 1 or city eq 'Redmond') and price gt 100

Priorité de l’opérateur

Les opérateurs pour la syntaxe filter sont évalués du haut vers le bas. Les opérateurs de la même catégorie/du même groupe ont la même priorité et sont évalués de la gauche vers la droite.

Groupe Opérateur Description
Regroupement ( ) Regroupement des priorités
Relationnel gt Supérieur à
ge Supérieur ou égal à
lt Inférieur à
le Inférieur ou égal à
Égalité eq Égal
ne Différent de
AND conditionnel and AND logique
OR conditionnel or OR logique

Propriétés filtrables

Étant donné que la syntaxe filter peut être utilisée sur toutes les propriétés d’un élément, nous avons optimisé certaines propriétés pour rendre leur tri plus rapide et efficace.

Remarque : Dans OneDrive Entreprise, SharePoint Online et SharePoint Server 2016, le filtrage prend en charge uniquement les propriétés name et url.

  • audio
  • createdDateTime (pour gt, ge, lt, le)
  • deleted
  • file
  • folder
  • image
  • lastModifiedDateTime (pour gt, ge, lt, le)
  • video

Le filtrage sur d’autres propriétés non optimisées peut entraîner les problèmes suivants :

  • Latence plus élevée de l’API (temps de réponse plus long)
  • Pages vides (aucun élément dans la collection de valeurs, mais une propriété odata.nextLink pour la page suivante)

Exemple

Voici un exemple de filtrage des résultats de recherche pour les éléments qui possèdent uniquement une facette file et image.

Demande

GET /drive/root/search(q='vacation')?filter=image%20ne%20null%20and%20file%20ne%20null

Réponse

HTTP/1.1 200 OK
Content-type: application/json

{
    "value": [
      {
        "id": "0123456789abc!123",
        "name": "Vacation.jpg",
        "image": { },
        "file": { },
        "searchResult":
        {
          "onClickTelemetryUrl": "https://bing.com/0123456789abc!123"
        }
      },
      {
        "id": "0123456789abc!456",
        "name": "Summer.jpg",
        "image": { },
        "file": { },
        "searchResult":
        {
          "onClickTelemetryUrl": "https://bing.com/0123456789abc!456"
        }
      }
    ],
    "@search.approximateCount": 12,
    "@odata.nextLink": "https://api.onedrive.com/drive/root/search?query=vacation&skipToken=1asdlnjnkj1nalkm!asd"
}