Informations de référence sur le langage de requête Azure Digital Twins : clause MATCH
Ce document contient des informations de référence sur la clause MATCH du langage de requête Azure Digital Twins.
La clause MATCH
est utilisée dans le langage de requête Azure Digital Twins dans le cadre de la clause FROM. MATCH
vous permet de spécifier le modèle à suivre pour parcourir les relations dans le graphe Azure Digital Twins (également connu sous le nom de modèle de requête « saut de variable »).
Cette clause est facultative lors de l’interrogation.
Syntaxe principale : MATCH
MATCH
prend en charge toutes les requêtes qui trouvent un chemin entre des jumeaux avec une plage de tronçons, en fonction de certaines conditions de relation.
La condition de relation peut inclure un ou plusieurs des détails suivants :
- Direction de la relation (de gauche à droite, de droite à gauche ou non directionnelle)
- Nom de la relation (nom unique ou liste de possibilités)
- Nombre de « sauts » d’un jumeau à un autre (nombre exact ou plage)
- Une affectation de variable de requête pour représenter la relation au sein du texte de la requête. Cela vous permettra également de filtrer les propriétés de relation.
Une requête qui inclut une clause MATCH
doit également utiliser la clause WHERE pour spécifier le $dtId
d’au moins un des jumeaux auxquels elle fait référence.
Remarque
MATCH
est un surensemble de toutes les requêtes JOIN
qui peuvent être effectuées dans le magasin des requêtes.
Syntaxe
Voici la syntaxe MATCH
de base.
Il contient les espaces réservés suivants :
twin_or_twin_collection
(x2) : La clauseMATCH
nécessite qu’un opérande représente un jumeau unique. L’autre opérande peut représenter un autre jumeau unique ou une collection de jumeaux.relationship_condition
: dans cet espace, définissez une condition qui décrit la relation entre les jumeaux ou les collections de jumeaux. La condition peut spécifier le sens de la relation, spécifier le nom de la relation, spécifier le nombre de tronçons, spécifier des propriétés de relation ou toute combinaison de ces options.twin_ID
: ici, spécifiez un$dtId
dans l’une des collections de jumeaux afin que l’un des opérandes représente un jumeau unique.
--SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[relationship_condition]-(twin_or_twin_collection_2)
WHERE twin_or_twin_collection.$dtId = 'twin_ID'
-- AND ...
Vous pouvez laisser une des collections de jumeaux vide afin de permettre à n’importe quel jumeau de travailler dans ce spot.
Vous pouvez également modifier le nombre de conditions de relation pour avoir plusieurs conditions de relation chaînées ou aucune condition de relation :
--Chained relationship conditions
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[relationship_condition]-(twin_or_twin_collection_2)-[relationship_condition]-(twin_or_twin_collection_3)...
WHERE twin_or_twin_collection.$dtId = 'twin_ID'
-- No relationship condition
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)
WHERE twin_or_twin_collection.$dtId = 'twin_ID'
Pour plus d’informations sur chaque type de condition de relation et sur la manière de les combiner, consultez les autres sections de ce document.
Exemple
Voici un exemple de requête qui utilise MATCH
.
La requête spécifie une direction de relation, puis recherche des jumeaux Building et Sensor où :
- Sensor est ciblé par toute relation à partir d’un jumeau Building dont la valeur
$dtId
est Building21, et - Sensor indique une température supérieure à 50. Building et Sensor sont tous les deux inclus dans le résultat de la requête.
SELECT Building, Sensor FROM DIGITALTWINS
MATCH (Building)-[]->(Sensor)
WHERE Building.$dtId = 'Building21' AND Sensor.temperature > 50
Spécifier la direction de la relation
Utilisez la condition de relation dans la clause MATCH
pour spécifier une direction de relation entre les jumeaux. Les directions possibles sont les suivants : de gauche à droite, de droite à gauche ou non directionnelle. Les relations cycliques sont automatiquement détectées, afin qu’une relation ne soit traversée qu’une seule fois.
Remarque
Il est possible de représenter des relations bidirectionnelles en utilisant un chaînage.
Syntaxe
Remarque
Les exemples de cette section se concentrent sur la direction de la relation. Ils ne spécifient pas de noms de relation, leur valeur par défaut correspond à un saut unique et ils n’affectent pas de variables de requête aux relations. Pour obtenir des instructions sur l’utilisation de ces autres conditions, consultez Spécifier le nom de la relation, Spécifier le nombre de sauts et Affecter une variable de requête à une relation. Pour plus d’informations sur l’utilisation simultanée de plusieurs de ces conditions dans la même requête, consultez Combiner des opérations MATCH.
Les descriptions de relations directionnelles utilisent une représentation visuelle d’une flèche pour indiquer la direction de la relation. La flèche inclut un espace réservé par des crochets ([]
) à un éventuel nom de relation.
Cette section présente la syntaxe de différentes directions de relation. Les valeurs d’espace réservé que vous devez remplacer par vos valeurs sont source_twin_or_twin_collection
et target_twin_or_twin_collection
.
Pour une relation de gauche à droite, utilisez la syntaxe suivante.
-- SELECT ... FROM ...
MATCH (source_twin_or_twin_collection)-[]->(target_twin_or_twin_collection)
-- WHERE ...
Pour une relation de droite à gauche, utilisez la syntaxe suivante.
-- SELECT ... FROM ...
MATCH (target_twin_or_twin_collection)<-[]-(source_twin_or_twin_collection)
-- WHERE ...
Pour une relation non directionnelle, utilisez la syntaxe suivante. Celle-ci ne spécifie pas de direction pour la relation, si bien que des relations de toute direction sont incluses dans le résultat.
-- SELECT ... FROM ...
MATCH (source_twin_or_twin_collection)-[]-(target_twin_or_twin_collection)
-- WHERE ...
Conseil
Les requêtes non directionnelles nécessitent un traitement supplémentaire, susceptible d’entraîner une latence et un coût accrus.
Exemples
Le premier exemple montre une traversée directionnelle de gauche à droite. Cette requête recherche des jumeaux Room et Factory où :
- Room cible Factory (quel que soit le nom de la relation).
- Room présente une valeur de température supérieure à 50.
- Factory a la valeur
$dtId
définie sur « ABC ».
SELECT Room, Factory FROM DIGITALTWINS MATCH (Room)-[]->(Factory)
WHERE Room.temperature > 50 AND Factory.$dtId = 'ABC'
Remarque
Les requêtes MATCH qui contiennent des filtres $dtId
sur tout jumeau autre que le jumeau de départ de la traversée MATCH peuvent afficher des résultats vides. Cela s’applique à factory.$dtId
dans l’exemple ci-dessus. Pour plus d’informations, consultez Limitations.
L’exemple suivant montre une traversée directionnelle de gauche à droite. Cette requête ressemble à celle ci-dessus, mais la direction de la relation entre Room et Factory est inversée. Cette requête recherche des jumeaux Room et Factory où :
- Factory cible Room (quel que soit le nom de la relation).
- Factory a la valeur
$dtId
définie sur « ABC ». - Room présente une valeur de température supérieure à 50.
SELECT Room, Factory FROM DIGITALTWINS MATCH (Room)<-[]-(Factory)
WHERE Factory.$dtId = 'ABC' AND Room.temperature > 50
L’exemple suivant montre une traversée non directionnelle. Cette requête recherche des jumeaux Room et Factory où :
- Room et Factory partagent n’importe quel nom de relation, dans l’une ou l’autre direction.
- Factory a la valeur
$dtId
définie sur « ABC ». - Room présente une valeur de taux d’humidité supérieure à 70.
SELECT Factory, Room FROM DIGITALTWINS MATCH (Factory)-[]-(Room)
WHERE Factory.$dtId ='ABC' AND Room.humidity > 70
Spécifier le nom de la relation
Éventuellement, vous pouvez utiliser la condition de relation dans la clause MATCH
pour spécifier les noms des relations entre les jumeaux. Vous pouvez spécifier un nom unique ou une liste de noms possibles. Le nom de relation facultatif est inclus dans le cadre de la syntaxe de flèche pour spécifier la direction de la relation.
Si vous ne fournissez pas de nom de relation, la requête inclut tous les noms de relation par défaut.
Conseil
La spécification de noms de relation dans la requête peut améliorer les performances et rendre les résultats plus prédictibles.
Syntaxe
Remarque
Les exemples de cette section se concentrent sur le nom de la relation. Ils présentent tous des relations non directionnelles, leur valeur par défaut correspond à un saut unique et ils n’affectent pas de variables de requête aux relations. Pour obtenir des instructions sur l’utilisation de ces autres conditions, consultez Spécifier la direction de la relation, Spécifier le nombre de sauts et Affecter une variable de requête à une relation. Pour plus d’informations sur l’utilisation simultanée de plusieurs de ces conditions dans la même requête, consultez Combiner des opérations MATCH.
Spécifiez le nom d’une relation à traverser dans la clause MATCH
entre crochets ([]
), après un signe deux-points (:
). Cette section décrit la syntaxe de la spécification de relations nommées.
Pour un nom unique, utilisez la syntaxe suivante. Les valeurs d’espace réservé que vous devez remplacer par vos valeurs sont twin_or_twin_collection_1
, relationship_name
et twin_or_twin_collection_2
.
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[:relationship_name]-(twin_or_twin_collection_2)
-- WHERE ...
Pour plusieurs noms possibles, utilisez la syntaxe suivante. Les valeurs d’espace réservé que vous devez remplacer par vos valeurs sont twin_or_twin_collection_1
, relationship_name_option_1
, relationship_name_option_2
, twin_or_twin_collection_2
et la remarque indiquant de continuer le modèle selon les besoins en termes de nombre de noms de relation à entrer.
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[:relationship_name_option_1|relationship_name_option_2|continue pattern as needed...]-(twin_or_twin_collection_2)
-- WHERE ...
Important
Le signe deux-points (:
) entre crochets est une partie requise de la syntaxe pour spécifier un nom de relation dans une requête MATCH
. Si vous n’incluez pas le signe deux-points, votre requête ne spécifie pas de nom de relation. Au lieu de cela, vous disposez d’une requête qui attribue une variable de requête à la relation.
(Par défaut) Pour ne pas spécifier de nom, laissez les crochets vides, comme ceci :
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[]-(twin_or_twin_collection_2)
-- WHERE ...
Exemples
L’exemple suivant montre un nom de relation unique. Cette requête recherche des jumeaux Building et Sensor où :
- Building a une relation « contains » avec Sensor (dans l’une ou l’autre direction).
- Building a la valeur
$dtId
définie sur « Seattle21 ».
SELECT Building, Sensor FROM DIGITALTWINS
MATCH (Building)-[:contains]-(Sensor)
WHERE Building.$dtId = 'Seattle21'
L’exemple suivant montre plusieurs noms de relation possibles. Cette requête ressemble à celle ci-dessus, mais plusieurs noms de relation possibles sont inclus dans le résultat. Cette requête recherche des jumeaux Building et Sensor où :
- Building a une relation « contains » ou « isAssociatedWith » avec Sensor (dans l’une ou l’autre direction).
- Building a la valeur
$dtId
définie sur « Seattle21 ».
SELECT Building, Sensor FROM DIGITALTWINS
MATCH (Building)-[:contains|isAssociatedWith]-(Sensor)
WHERE building.$dtId = 'Seattle21'
L’exemple suivant n’a aucun nom de relation spécifié. Ainsi, les relations sont incluses dans le résultat de la requête, quel que soit leur nom. Cette requête recherche des jumeaux Building et Sensor où :
- Building a une relation avec Sensor d’un nom quelconque (dans l’une ou l’autre direction).
- Building a la valeur
$dtId
définie sur « Seattle21 ».
SELECT Building, Sensor FROM DIGITALTWINS
MATCH (Building-[]-(Sensor)
WHERE Building.$dtId = 'Seattle21'
Spécifier le nombre de sauts
Éventuellement, vous pouvez utiliser la condition de relation dans la clause MATCH
pour spécifier le nombre de sauts pour les relations entre les jumeaux. Vous pouvez spécifier un nombre exact ou une plage. La valeur facultative est incluse dans le cadre de la syntaxe de flèche pour spécifier la direction de la relation.
Si vous n’indiquez pas le nombre de sauts, ce dernier est égal à un par défaut dans la requête.
Important
Si vous spécifiez un nombre de sauts supérieur à un, vous ne pouvez pas affecter une variable de requête à la relation. Une seule de ces conditions peut être utilisée au sein de la même requête.
Syntaxe
Remarque
Les exemples de cette section se concentrent sur le nombre de sauts. Ils présentent tous des relations non directionnelles sans spécifier de noms. Pour obtenir des instructions sur l’utilisation de ces autres conditions, consultez Spécifier la direction de la relation et Spécifier le nom de la relation. Pour plus d’informations sur l’utilisation simultanée de plusieurs de ces conditions dans la même requête, consultez Combiner des opérations MATCH.
Spécifiez le nombre de sauts à traverser dans la clause MATCH
entre crochets ([]
).
Pour spécifier un nombre exact de sauts, utilisez la syntaxe suivante. Les valeurs d’espace réservé que vous devez remplacer par vos valeurs sont twin_or_twin_collection_1
, number_of_hops
et twin_or_twin_collection_2
.
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[*number_of_hops]-(twin_or_twin_collection_2)
-- WHERE ...
Pour spécifier une plage de sauts, utilisez la syntaxe suivante. Les valeurs d’espace réservé que vous devez remplacer par vos valeurs sont twin_or_twin_collection_1
, starting_limit
, ending_limit
et twin_or_twin_collection_2
. La limite de début n’est pas incluse dans la plage, alors que la limite de fin est incluse.
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[*starting_limit..ending_limit]-(twin_or_twin_collection_2)
-- WHERE ...
Vous pouvez aussi omettre la limite de début pour indiquer « toute valeur allant jusqu’à » la limite de fin (incluse). Une limite de fin doit toujours être fournie.
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[*..ending_limit]-(twin_or_twin_collection_2)
-- WHERE ...
(Par défaut) Pour spécifier un seul saut par défaut, laissez les crochets vides, comme ceci :
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[]-(twin_or_twin_collection_2)
-- WHERE ...
Exemples
L’exemple suivant spécifie un nombre exact de sauts. La requête va uniquement retourner les relations entre les jumeaux Floor et Room dont le nombre de sauts est strictement égal à 3.
SELECT Floor, Room FROM DIGITALTWINS
MATCH (Floor)-[*3]-(Room)
WHERE Floor.$dtId = 'thermostat-15'
L’exemple suivant spécifie une plage de sauts. La requête va retourner les relations entre les jumeaux Floor et Room comprises entre 1 et 3 sauts (ce qui signifie que le nombre de sauts est égal à 2 ou 3).
SELECT Floor, Room FROM DIGITALTWINS
MATCH (Floor)-[*1..3]-(Room)
WHERE Floor.$dtId = 'thermostat-15'
Vous pouvez aussi présenter une plage en ne fournissant qu’une seule limite. Dans l’exemple suivant, la requête va retourner les relations entre les jumeaux Floor et Room comprenant au maximum 2 sauts (ce qui signifie que le nombre de sauts est égal à 1 ou 2).
SELECT Floor, Room FROM DIGITALTWINS
MATCH (Floor)-[*..2]-(Room)
WHERE Floor.$dtId = 'thermostat-15'
L’exemple suivant n’a aucun nombre spécifié de sauts. Donc, par défaut, un seul saut entre les jumeaux Floor et Room est défini.
SELECT Floor, Room FROM DIGITALTWINS
MATCH (Floor)-[]-(Room)
WHERE Floor.$dtId = 'thermostat-15'
Affecter une variable de requête à une relation (et spécifier des propriétés de relation)
Vous pouvez éventuellement affecter une variable de requête à la relation référencée dans la clause MATCH
, pour pouvoir y faire référence par son nom dans le texte de la requête.
Ainsi, vous avez alors la possibilité de filtrer les propriétés de relation dans votre clause WHERE
.
Important
L’affectation d’une variable de requête à la relation est prise en charge uniquement quand la requête spécifie un seul saut. Au sein d’une requête, vous devez choisir entre la spécification d’une variable de relation et la spécification d’un nombre supérieur de sauts.
Syntaxe
Remarque
Les exemples de cette section se concentrent sur une variable de requête pour la relation. Ils présentent tous des relations non directionnelles sans spécifier de noms. Pour obtenir des instructions sur l’utilisation de ces autres conditions, consultez Spécifier la direction de la relation et Spécifier le nom de la relation. Pour plus d’informations sur l’utilisation simultanée de plusieurs de ces conditions dans la même requête, consultez Combiner des opérations MATCH.
Pour affecter une variable de requête à la relation, placez le nom de la variable entre crochets ([]
). Les valeurs d’espace réservé indiquées ci-dessous que vous devez remplacer par vos valeurs sont twin_or_twin_collection_1
, relationship_variable
et twin_or_twin_collection_2
.
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[relationship_variable]-(twin_or_twin_collection_2>)
-- WHERE ...
Exemples
L’exemple suivant attribue une variable de requête 'Rel' à la relation. Plus loin, dans la clause WHERE
, l’exemple utilise la variable pour spécifier que la relation Rel doit avoir une propriété de nom dont la valeur est « child ».
SELECT Floor,Cafe, Rel DIGITALTWINS
MATCH (Floor)-[Rel]-(Cafe)
WHERE Floor.$dtId = 'thermostat-15' AND Rel.name = 'child'
Combiner des opérations MATCH
Vous pouvez combiner plusieurs conditions de relation dans la même requête. Vous pouvez aussi chaîner plusieurs conditions de relation pour exprimer des relations bidirectionnelles ou d’autres combinaisons plus larges.
Syntaxe
Dans une requête unique, vous pouvez combiner la direction de la relation, le nom de la relation et soit le nombre de tronçons, soit une affectation de variable de requête.
Les exemples de syntaxe suivants montrent comment ces attributs peuvent se combiner. Vous pouvez aussi exclure les informations facultatives présentées dans les espaces réservés pour omettre cette partie de la condition.
Pour spécifier la direction de la relation, le nom de la relation et le nombre de sauts au sein d’une seule requête, utilisez la syntaxe suivante dans la condition de relation. Les valeurs d’espace réservé que vous devez remplacer par vos valeurs sont twin_or_twin_collection_1
et twin_or_twin_collection_2
, optional_left_angle_bracket
et optional_right_angle_bracket
, relationship_name(s)
, puis number_of_hops
.
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)optional_left_angle_bracket-[:relationship_name(s)*number_of_hops]-optional_right_angle_bracket(twin_or_twin_collection_2)
-- WHERE
Pour spécifier la direction de la relation, le nom de la relation et une variable de requête pour la relation au sein d’une seule requête, utilisez la syntaxe suivante dans la condition de relation. Les valeurs d’espace réservé que vous devez remplacer par vos valeurs sont twin_or_twin_collection_1
et twin_or_twin_collection_2
, optional_left_angle_bracket
et optional_right_angle_bracket
, relationship_variable
, puis relationship_name(s)
.
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)optional_left_angle_bracket-[relationship_variable:relationship_name(s)]-optional_right_angle_bracket(twin_or_twin_collection_2)
-- WHERE
Remarque
Conformément aux options de spécification de la direction de la relation, vous devez choisir entre un chevron gauche pour une relation de gauche à droite et un chevron droit pour une relation de droite à gauche. Vous ne pouvez pas inclure les deux dans la même flèche, mais vous pouvez représenter des relations bidirectionnelles par un chaînage.
Vous pouvez chaîner plusieurs conditions de relation ensemble, comme dans cet exemple. Les valeurs d’espace réservé que vous devez remplacer par vos valeurs sont twin_or_twin_collection_1
, toutes les instances de relationship_condition
et twin_or_twin_collection_2
.
--Chained relationship conditions
-- SELECT ... FROM ...
MATCH (twin_or_twin_collection_1)-[relationship_condition]-(twin_or_twin_collection_2)-[relationship_condition]-(twin_or_twin_collection_3)...
WHERE twin_or_twin_collection.$dtId = 'twin_ID'
Exemples
Voici un exemple qui combine la direction de la relation, le nom de la relation et le nombre de sauts. La requête suivante trouve les jumeaux Floor et Room pour lesquels la relation entre Floor et Room remplit ces conditions :
- La relation est de gauche à droite, avec Floor comme source et Room comme cible.
- Le nom de la relation comporte 'contains' ou 'isAssociatedWith'.
- La relation comporte 4 ou 5 sauts.
La requête spécifie aussi que le jumeau Floor a la valeur $dtId
définie sur « thermostat-15 ».
SELECT Floor, Room FROM DIGITALTWINS
MATCH (Floor)-[:contains|isAssociatedWith*3..5]->(Room)
WHERE Floor.$dtId = 'thermostat-15'
Voici un exemple qui combine la direction de la relation, le nom de la relation et une variable de requête nommée pour la relation. La requête suivante trouve les jumeaux Floor et Room, pour lesquels la relation entre Floor et Room est affectée à une variable de requête r
et remplit ces conditions :
- La relation est de gauche à droite, avec Floor comme source et Room comme cible.
- Le nom de la relation comporte 'contains' ou 'isAssociatedWith'.
- La relation, qui reçoit une variable de requête
r
, a une propriété de longueur égale à 10
La requête spécifie aussi que le jumeau Floor a la valeur $dtId
définie sur « thermostat-15 ».
SELECT Floor, Room FROM DIGITALTWINS
MATCH (Floor)-[r:contains|isAssociatedWith]->(Room)
WHERE Floor.$dtId = 'thermostat-15' AND r.length = 10
L’exemple suivant illustre des conditions de relation chaînées. La requête trouve les jumeaux Floor, Cafe et Room, où :
- La relation entre Floor et Room remplit ces conditions :
- La relation est de gauche à droite, avec Floor comme source et Cafe comme cible.
- Le nom de la relation comporte 'contains' ou 'isAssociatedWith'.
- La relation, qui reçoit la variable de requête
r
, a une propriété de longueur égale à 10
- La relation entre Cafe et Room remplit ces conditions :
- La relation est de droite à gauche, avec Room comme source et Cafe comme cible.
- Le nom de la relation comporte soit 'has', soit 'includes'.
- La relation compte jusqu’à 3 (à savoir 1, 2 ou 3) sauts.
La requête spécifie aussi que le jumeau Floor a une valeur $dtId
définie sur « thermostat-15 », et que le jumeau Cafe a une température égale à 55.
SELECT Floor,Room, Cafe FROM DIGITALTWINS
MATCH (Floor)-[r:contains|isAssociatedWith]->(Cafe)<-[has|includes*..3]-(Room)
WHERE Floor.$dtId = 'thermostat-15' AND r.length = 10 AND Cafe.temperature = 55
Vous pouvez aussi utiliser des conditions de relation chaînées pour exprimer des relations bidirectionnelles. La requête suivante recherche les jumeaux Floor, Room et Building, où :
- La relation entre Building et Floor remplit ces conditions :
- La relation est de gauche à droite, avec Building comme source et Floor comme cible.
- Le nom de la relation comporte 'isAssociatedWith'.
- La relation reçoit une variable de requête
r1
- La relation entre Floor et Room remplit ces conditions :
- La relation est de droite à gauche, avec Room comme source et Floor comme cible.
- Le nom de la relation comporte 'isAssociatedWith'.
- La relation reçoit une variable de requête
r2
La requête spécifie aussi que le jumeau Building a une valeur $dtId
définie sur « building-3 », et que Room présente une température supérieure à 50.
SELECT Floor, Room, Building FROM DIGITALTWINS
MATCH (Building)-[r1:isAssociatedWith]->(Floor)<-[r2:isAssociatedWith]-(Room)
WHERE Building.$dtId = 'building-3' AND Room.temperature > 50
Limites
Les limites suivantes s’appliquent aux requêtes qui utilisent MATCH
:
Une seule expression
MATCH
est prise en charge par instruction de requête.$dtId
est nécessaire dans la clauseWHERE
.L’affectation d’une variable de requête à la relation est prise en charge uniquement quand la requête spécifie un seul saut.
Le nombre maximal de tronçons pris en charge dans une requête s’élève à 10.
Les requêtes MATCH qui contiennent des filtres
$dtId
sur tout jumeau autre que le jumeau de départ de la traversée MATCH peuvent afficher des résultats vides. Par exemple, la requête suivante est soumise à cette limitation :SELECT A, B, C FROM DIGITALTWINS MATCH A-[contains]->B-[is_part_of]->C WHERE B.$dtId = 'Device01'
Si votre scénario nécessite que vous utilisiez
$dtId
sur d’autres jumeaux, envisagez d’utiliser la clause JOIN à la place.Les requêtes MATCH qui traversent le même jumeau plusieurs fois peuvent supprimer ce jumeau des résultats de manière inattendue.