J'ai une requête Neo4j Cypher où je renvoie le résultat sous forme de COLLECTION comme ceci :

RETURN COLLECT(r) AS Shipper

Maintenant j'essaye d'utiliser

shippers  = result.records[0].get('Shipper').properties;

Mais j'obtiens une valeur indéfinie pour les expéditeurs. Je n'arrive pas à trouver dans la documentation comment récupérer les propriétés d'une COLLECTION. Les données de collecte brutes ressemblent à ceci :

[{"identity":{"low":1112,"high":0},"start":{"low":320,"high":0},"end":{"low":447,"high":0},"type":"SHIPPED_WITH","properties":{"name":"DHL","account":"483097049790yrh"}},{"identity":{"low":1111,"high":0},"start":{"low":320,"high":0},"end":{"low":442,"high":0},"type":"SHIPPED_WITH","properties":{"name":"UPS","account":"12345T6741"}}]

Je sais que je peux éviter d'utiliser la collection et récupérer les données en boucle, mais je pense qu'il existe un meilleur moyen. Je m'attends à obtenir un tableau d'objets. Toute aide serait appréciée.

0
MichaelE 5 oct. 2020 à 10:33

1 réponse

Meilleure réponse

Lorsque vous souhaitez récupérer des propriétés à partir d'un ensemble de relations, vous pouvez procéder comme suit :

MATCH (n)-[r]->(m)
WHERE   // your WHERE clause

// return a list of maps with keys `id` and `properties`
RETURN {id:id(r),properties:properties(r)}) AS Shipper

OU

// return just the properties as a map
RETURN properties(r) AS propertiesMap

OU

// return a collection of maps
RETURN COLLECT(properties(r)) AS listOfPropertyMaps
2
Graphileon 5 oct. 2020 à 14:43