Dataview dans Obsidian : guide pratique avec des requêtes à copier
Dataview est le plugin communautaire qui rend un vault Obsidian interrogeable. Vous continuez à écrire des notes ordinaires, vous ajoutez quelques propriétés en tête de chacune, et Dataview en tire des listes et des tableaux vivants : chaque projet à rendre ce mois-ci, chaque livre en cours, chaque client que vous n'avez pas appelé depuis deux mois. Rien n'est copié ni exporté, les tableaux changent donc dès qu'une note change. Ce guide couvre les requêtes que vous utiliserez vraiment, avec des exemples tirés des tableaux de bord de nos propres vaults.
Ce que fait le plugin Dataview d'Obsidian
Dataview lit trois types de données dans vos notes. Les propriétés sont le bloc YAML en tête de note, entre deux lignes de trois tirets. Les champs en ligne s'écrivent dans le corps sous la forme clé:: valeur, ou entre crochets sur la ligne d'une tâche. Les champs implicites sont ceux qu'Obsidian connaît déjà, comme file.name, file.ctime, file.tags ou file.link. Une requête est un bloc de code dont le langage est dataview, affiché en mode lecture sous forme de liste, de tableau, de liste de tâches ou de calendrier. Une note avec des propriétés ressemble à ceci :
---
status: actif
due: 2026-11-27
owner: Lina
---
# Refonte du siteLes clés (status, due, owner) restent en anglais et sans accent, même quand les valeurs sont en français. Dataview accepte des clés en français, mais un accent comme dans échéance doit être retapé à l'identique dans chaque requête, et les modèles récupérés ailleurs utilisent presque toujours des clés anglaises. C'est la convention de tous nos vaults.
Installer Dataview et écrire sa première requête
Ouvrez Paramètres, Modules complémentaires, désactivez le mode restreint s'il est encore actif, choisissez Parcourir et cherchez Dataview. Installez-le, activez-le, c'est tout : rien à configurer avant la première requête. Créez une note, ajoutez un bloc de code de langage dataview et commencez par la requête la plus simple, la liste de toutes les notes d'un dossier :
```dataview
LIST
FROM "Projets"
```En mode lecture, le bloc devient une liste de liens. Remplacez LIST par TABLE, nommez les propriétés voulues comme colonnes, et vous avez un suivi de projets :
```dataview
TABLE status, due, owner
FROM "Projets"
WHERE status = "actif"
SORT due ASC
```Syntaxe des requêtes Dataview : FROM, WHERE, SORT et GROUP BY
Toute requête commence par son type, LIST, TABLE, TASK ou CALENDAR, suivi de commandes facultatives exécutées dans l'ordre. FROM choisit la source : un dossier entre guillemets, un tag comme #livre, ou [[]] pour les notes qui pointent vers la note courante. Les sources se combinent avec AND, OR et un signe moins devant pour exclure. WHERE ne garde que les lignes qui correspondent, par exemple WHERE status = "actif" ou WHERE due <= date(today). SORT trie sur un ou plusieurs champs, en ordre croissant ou décroissant, et LIMIT limite le nombre de lignes. Les mots de la requête restent en anglais, même si vos dossiers et vos valeurs sont en français.
GROUP BY rend les tableaux vraiment utiles. La commande réunit les lignes qui partagent une valeur en une ligne par groupe, et les notes d'origine passent dans une liste nommée rows, que vous comptez avec length(rows) ou additionnez avec sum(rows.value). La valeur du groupe s'appelle key. Cette requête compte les projets par statut :
```dataview
TABLE rows.file.link AS "Notes", length(rows) AS "Count"
FROM "Projets"
GROUP BY status
```Deux détails piègent presque tout le monde. Un nom de propriété avec un tiret serait lu comme une soustraction, il faut donc l'écrire row["date-started"], comme le fait notre vault de notes de lecture pour ses dates. Et WITHOUT ID après TABLE masque la première colonne automatique des noms de fichier, quand vous voulez choisir vous-même la première colonne.
Les tâches avec Dataview dans Obsidian : interroger les cases de tout le vault
Une requête TASK renvoie les cases elles-mêmes, pas les notes, et vous pouvez les cocher directement dans les résultats. Dataview lit une échéance écrite en champ en ligne sur la tâche, et comprend aussi la date 📅 du plugin Tasks :
- [ ] Envoyer le devis révisé [due:: 2026-10-28]```dataview
TASK
FROM "Projets"
WHERE !completed AND due AND due <= date(today)
GROUP BY file.link
```Si les tâches sont au cœur de votre système, le plugin Tasks offre une syntaxe plus riche et les récurrences, et notre guide des tâches dans Obsidian compare les deux. Dataview est le meilleur choix quand les tâches ne sont qu'une partie d'un tableau de bord qui montre aussi des notes et des propriétés.
Exemples de tableaux Dataview tirés de nos vaults
Chaque requête de cette section tourne dans un vault téléchargeable : vous pouvez l'ouvrir et voir le résultat sur de vraies données. Le vault de gestion de projet liste les projets actifs par échéance. Le vault de campagne D&D regroupe chaque PNJ par lieu sur son écran du MJ avec GROUP BY location. Le vault de notes de lecture montre ce que vous lisez et ce que vous avez terminé, avec la note attribuée. Le vault étudiant liste les rendus à partir d'aujourd'hui avec WHERE due AND due >= date(today). Notre modèle CRM pour Obsidian va le plus loin : relances de la semaine, montant du pipeline par étape et contacts sans nouvelles depuis 60 jours, avec date(today) - last_contact > dur(60 days).
Dataview ou Bases dans Obsidian
Bases est un plugin principal arrivé dans Obsidian en 2025. Lui aussi transforme des propriétés en tableaux, mais la vue se construit au clic plutôt qu'en écrivant une requête, et les valeurs se modifient directement dans le tableau. Une base s'enregistre dans un fichier .base dont la définition est du YAML lisible :
filters:
and:
- file.inFolder("Projets")
views:
- type: table
name: All
groupBy:
property: status
direction: ASCPrenez Bases pour une vue modifiable, façon tableur, des notes et de leurs propriétés, sans rien installer. Gardez Dataview pour ce que Bases ne fait pas : requêtes insérées au milieu d'une note, requêtes de tâches, liens entre notes comme source, calculs de dates comme "pas touché depuis 60 jours" et requêtes JavaScript avec DataviewJS. Beaucoup de vaults utilisent les deux, et le vault CRM fournit un pipeline en Bases à côté de son tableau de bord Dataview pour les comparer sur les mêmes données.
Pourquoi une requête Dataview n'affiche aucun résultat
La plupart des tableaux vides ont l'une de ces quatre causes, et deux d'entre elles sont très françaises. La première est la date. due: 28/10/2026 est enregistré comme du texte, et la comparaison avec date(today) ne correspond jamais : écrivez toujours AAAA-MM-JJ. La deuxième, ce sont les décimales. montant: 1 500,50, avec l'espace des milliers et la virgule, est aussi du texte pour Dataview, et sum() l'ignore. Saisissez les montants sous la forme 1500.50 ou sans décimales. Les deux autres sont universelles : le dossier du FROM ne correspond pas au chemin réel, qui distingue les majuscules et doit être complet pour les sous-dossiers, ou vous êtes encore en mode édition, où la requête s'affiche comme du code. Pour afficher les dates en 28/10/2026 dans les tableaux, mettez dd/MM/yyyy dans le format de date des paramètres de Dataview. Ce champ utilise les codes de Luxon, avec yyyy en minuscules, et non ceux des modèles d'Obsidian.