Documentation

Cookies

Nous utilisons les cookies afin de vous garantir la meilleure expérience sur notre site. Vous pouvez modifier vos préférences à tout moment en cliquant sur "Cookies" en pied de page.

Exemples pratiques

Voici une collection d'exemples MEL concrets que vous pouvez réutiliser et adapter à vos besoins. Chaque exemple est accompagné d'explications détaillées.

Filtres basiques

Filtre par statut

Le cas le plus simple : afficher uniquement les éléments actifs.

JSON
{ "status": { "$eq": "active" } }

Filtre par statuts multiples

Afficher les éléments dans plusieurs statuts possibles.

JSON
{ "status": { "$in": ["active", "pending", "review"] } }

Version courte (syntaxe raccourcie) :

JSON
{ "status": ["active", "pending", "review"] }

Exclure des statuts

Masquer les éléments supprimés ou archivés.

JSON
{ "status": { "$nin": ["deleted", "archived"] } }

Filtre par montant minimum

Afficher les commandes de plus de 500€.

JSON
{ "amount": { "$gt": 500 } }

Filtre par plage de valeurs

Afficher les éléments avec un score entre 50 et 100.

JSON
{
  "$and": [
    { "score": { "$gte": 50 } },
    { "score": { "$lte": 100 } }
  ]
}

Filtres par utilisateur

Mes tâches assignées

Afficher uniquement les tâches assignées à l'utilisateur connecté.

JSON
{ "assignedTo": { "$eq": "$selfUser" } }

Mes tâches (format tableau)

Si le champ assignedTo peut contenir plusieurs utilisateurs.

JSON
{ "assignedTo": { "$in": ["$selfUser"] } }

Éléments créés par moi

Filtrer sur le créateur.

JSON
{ "createdBy": { "$eq": "$selfUser" } }

Tâches de mon équipe

Utiliser une propriété de l'utilisateur connecté.

JSON
{ "department": { "$eq": "$user.department" } }

Exclure mes propres éléments

Voir ce que les autres ont créé.

JSON
{ "createdBy": { "$ne": "$selfUser" } }

Cas d'usage courant

Le filtre "Mes tâches" est l'un des plus utilisés dans les applications de gestion de projet. Combinez-le avec un filtre de statut pour créer un tableau de bord personnalisé efficace.

Filtres temporels

Éléments récents

Créés après une date spécifique.

JSON
{ "createdAt": { "$gt": "2024-01-01" } }

Éléments en retard

Dont la date limite est passée.

JSON
{ "deadline": { "$lt": "2024-01-20" } }

Dans une période

Éléments créés au premier trimestre 2024.

JSON
{
  "$and": [
    { "createdAt": { "$gte": "2024-01-01" } },
    { "createdAt": { "$lt": "2024-04-01" } }
  ]
}

Date par rapport au contexte

Utiliser une date du contexte (ex: date du jour).

JSON
{ "createdAt": { "$eq": "$context.date" } }

Format des dates

Utilisez toujours le format ISO 8601 : YYYY-MM-DD pour les dates ou YYYY-MM-DDTHH:MM:SS pour les dates avec heure.

Filtres multi-critères

Commandes validées d'un bénéficiaire

Combiner plusieurs critères obligatoires.

JSON
{
  "$and": [
    { "beneficiary": { "$eq": 2 } },
    { "status": { "$eq": "validated" } }
  ]
}

Factures ou dépenses validées

ET logique avec OU imbriqué.

JSON
{
  "$and": [
    { "status": { "$eq": "validated" } },
    {
      "$or": [
        { "type": { "$eq": "invoice" } },
        { "type": { "$eq": "expense" } }
      ]
    }
  ]
}

Tâches urgentes OU assignées à moi

Priorité aux tâches importantes.

JSON
{
  "$or": [
    { "isUrgent": { "$eq": true } },
    { "priority": { "$eq": 1 } },
    { "assignedTo": { "$in": ["$selfUser"] } }
  ]
}

Filtre complet de tableau de bord

Exemple réaliste combinant plusieurs logiques.

JSON
{
  "$and": [
    { "status": { "$nin": ["deleted", "archived"] } },
    { "department": { "$eq": "$user.department" } },
    {
      "$or": [
        { "assignedTo": { "$in": ["$selfUser"] } },
        { "createdBy": { "$eq": "$selfUser" } }
      ]
    }
  ]
}

Filtres avec relations

Éléments liés à l'objet courant

Trouver les enfants d'un objet.

JSON
{ "parentId": { "$eq": "$object.id" } }

Même projet

Éléments du même projet, sauf l'objet lui-même.

JSON
{
  "$and": [
    { "project": { "$eq": "$object.project" } },
    { "id": { "$ne": "$object.id" } }
  ]
}

Filtre avec chemin profond

Accéder à des propriétés imbriquées.

JSON
{ "$form.order.provider.name": { "$eq": "NETKIN" } }

Correspondance avec sélection formulaire

Filtrer selon les choix de l'utilisateur dans un formulaire.

JSON
{ "contractType": { "$in": "$form.selectedTypes" } }

Filtres de recherche

Recherche par préfixe

Noms commençant par une chaîne.

JSON
{ "name": { "$regex": "^Jean" } }

Recherche par suffixe

Emails d'un domaine spécifique.

JSON
{ "email": { "$regex": "@company\.com$" } }

Recherche partielle

Contient une chaîne.

JSON
{ "description": { "$regex": "urgent" } }

Codes avec format spécifique

Codes suivant un pattern (3 lettres, tiret, 4 chiffres).

JSON
{ "code": { "$regex": "^[A-Z]{3}-[0-9]{4}$" } }

Vérifier l'existence d'un champ

Éléments avec un email renseigné.

JSON
{ "email": { "$exists": true } }

Performance

Les filtres avec $regex peuvent être plus lents sur de grandes quantités de données. Préférez les filtres d'égalité ou d'appartenance quand c'est possible.

Prochaine étape

Vous avez maintenant un arsenal d'exemples à adapter. Terminez avec les bonnes pratiques pour écrire des expressions MEL optimales.