How to find all the properties in a label/Node and data type of all the properties

Team, is there any way to get all the property in a node/Label and data type of all of those?

I am trying below query, but apoc.meta.type(property) gives as STRING Always for all property

call apoc.meta.data() yield label, property
with ['company'] as labels, property, label where label in labels
return property, label , apoc.meta.type(property)

Hi, @Kailash

Are looking for something like:

MATCH (p:Person {name: 'Eve'})
WITH p
RETURN apoc.meta.cypher.types(p)

{
  "name": "STRING",
  "gender": "STRING",
  "age": "INTEGER",
  "kids": "INTEGER"
}

To get same result, each line separate:

MATCH (p)
WITH distinct p, keys(p) as pKeys
UNWIND pKeys as Key
RETURN distinct labels(p), Key, apoc.map.get(apoc.meta.cypher.types(p), Key, [true])

Result

╒═══════════╀═════════╀══════════════════════════════════════════════════════╕
β”‚"labels(p)"β”‚"Key"    β”‚"apoc.map.get(apoc.meta.cypher.types(p), Key, [true])"β”‚
β•žβ•β•β•β•β•β•β•β•β•β•β•β•ͺ═════════β•ͺ══════════════════════════════════════════════════════║
β”‚["Person"] β”‚"age"    β”‚"INTEGER"                                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚["Person"] β”‚"kids"   β”‚"INTEGER"                                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚["Person"] β”‚"name"   β”‚"STRING"                                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚["Person"] β”‚"gender" β”‚"STRING"                                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚["Forum"]  β”‚"name"   β”‚"STRING"                                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚["Forum"]  β”‚"members"β”‚"INTEGER"                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Same thing for relationships:

MATCH ()-[p]-()
WITH distinct p, keys(p) as pKeys
UNWIND pKeys as Key
RETURN distinct type(p), Key, apoc.map.get(apoc.meta.cypher.types(p), Key, [true])

Result

╒═════════╀═══════╀══════════════════════════════════════════════════════╕
β”‚"type(p)"β”‚"Key"  β”‚"apoc.map.get(apoc.meta.cypher.types(p), Key, [true])"β”‚
β•žβ•β•β•β•β•β•β•β•β•β•ͺ═══════β•ͺ══════════════════════════════════════════════════════║
β”‚"KNOWS"  β”‚"since"β”‚"INTEGER"                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜