gpt4 book ai didi

graphql - 返回 Graphql 计数

转载 作者:行者123 更新时间:2023-12-03 21:28:20 25 4
gpt4 key购买 nike

我有这个 Graphql 查询

 "{TABLE_NAME{
id
severity
des
ip
hostname
description

}
}";

那是返回 1000 多条记录..
我的问题是:我怎样做
SELECT COUNT(*) FROM TABLE_NAME

在 Graphql 中?

最佳答案

简短的回答是你没有。 GraphQL 对象类型不一定以 1:1 的方式映射到数据库表,因此您不能以这种方式看待它。如果要从表中获取计数,则需要将其作为字段添加到输出类型或作为其自己的字段。我假设因为您想在查询之前找出表有多大,所以您需要一个“tableInfo”类型的查询,它看起来像

const TableInfo = new GraphQLObjectType({
name: 'TableInfo',
fields: {
count: GraphQLInt
}
})
const Query = new GraphQLObjectType({
name: 'Query',
fields: {
tableInfo: {
type: TableInfo,
args: {
name: new GraphQLNonNull(GraphQLString)
},
resolve (source, args) {
return new Promise((resolve, reject) => {
connection.query(
'SELECT COUNT(*) from ' + args.name,
(error, results) => {
return error ? reject(error) : resolve(results)
}
)
})
}
}
}
})
const schema = new GraphQLSchema({
query: Query
})

然后请求
query Info {
tableInfo(name: "my_table") {
count
}
}

也就是说,这不是一个好的模式,如果您希望查询返回大量结果,您应该使用分页。最佳实践在这里 http://graphql.org/learn/pagination/

关于graphql - 返回 Graphql 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46452868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com