为什么在neo4j和graphql中使用count函数会返回两个值low和high?

bogh5gae  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(269)

如果我在Neo4j中执行下面的密码,浏览器将返回预期值

MATCH (n:Document)
RETURN { 
    year: n.year ,
    countdocs : COUNT(n) 
}

结果:

{"countdocs":3,"year":"2018"}

但是如果我在neo4j-graphql中执行相同的密码

type Query {
    totalActivityOverTime: [JSONObject] @cypher(statement: """
       MATCH (n:Document)
        RETURN { 
         year: n.year ,
         countdocs : COUNT(n) 
       }
    """) 
}

退货:

{
    "countdocs": {
      "low": 3,
      "high": 0
    },
    "year": "2018"
  },

什么是价值观 低和高?
谢谢你!

apeeds0o

apeeds0o1#

我认为这取决于countdocs的类型,据我所知,如果您在neo4j-graphql中将'countdocs'定义为BigInt,它将返回一个带有{“low”:Int,“高”:Int},以便表示64位整数。在架构中将countdocs定义为Int应该可以解决此问题。Int类型最多支持53位值

cgvd09ve

cgvd09ve2#

感谢@Sbunzini和@stdob--我找到了解决方案:
结构描述:

type Activity{
  year: String
  countdocs: Int
}

type Query {
    totalActivityOverTime: [Activity] @cypher(statement: """
       MATCH (n:Document)
        RETURN { 
         year: n.year ,
         countdocs : COUNT(n) 
       }
    """) 
}

GraphQL:

{
  totalActivityOverTime{
    year
    countdocs 
  }
}

谢谢你!

相关问题