Neo4j 为什么这个密码为'data'键返回数组数组?

Neo4j 为什么这个密码为'data'键返回数组数组?,neo4j,cypher,Neo4j,Cypher,查询 curl -X POST \ http://my-neo4j.example.com:7474/db/data/cypher \ -H 'Accept: application/json; charset=UTF-8' \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 'Postman-Token: 10c0796f-d397-4c05-8f6d-9dcde4baca8a'

查询

curl -X POST \
  http://my-neo4j.example.com:7474/db/data/cypher \
  -H 'Accept: application/json; charset=UTF-8' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -H 'Postman-Token: 10c0796f-d397-4c05-8f6d-9dcde4baca8a' \
  -d '{
  "query" : "MATCH (c:category) RETURN c {.categoryName} ORDER BY c.categoryName"
}'
响应

{
    "columns": [
        "c"
    ],
    "data": [
        [
            {
                "categoryName": "Scenario"
            }
        ],
        [
            {
                "categoryName": "Theme"
            }
        ],
        [
            {
                "categoryName": "Video Mood"
            }
        ]
    ]
}
问题:为什么结果不是这样

  • 返回的
    数据
    是一个行数组
  • 每行是一个列数组(在
    RETURN
    子句中,每一项对应一行)
  • 返回c{.categoryName}
    只返回一列。而且,由于使用了指定列值,因此生成的值是一个映射(在您的案例中包含一个字段)
如果您的查询使用了
RETURN c.categoryName
而不是
RETURN c{.categoryName}
,那么您可能会发现结果更容易混淆:

{
    "columns": [
        "c.categoryName"
    ],
    "data": [
        [
            "Scenario"
        ],
        [
            "Theme"
        ],
        [
            "Video Mood"
        ]
    ]
}

您使用什么工具/API生成此结果?谢谢您的提问!我已经更新了这个问题,使之更加精确。正如您从url路径中看到的,
db/data/cypher
,我使用的是cypher http端点。仅供参考,此端点已弃用。相反,您应该使用HTTP事务端点:
/db/data/transaction/commit
{
    "columns": [
        "c.categoryName"
    ],
    "data": [
        [
            "Scenario"
        ],
        [
            "Theme"
        ],
        [
            "Video Mood"
        ]
    ]
}