GraphQL - 查询具有不同属性名称的对象列表?

时间:2018-01-17 00:31:39

标签: database list nosql graphql graphql-js

我有一组看起来像这样的数据。我无法确定如何在下面的示例中列出entries下的内容(如果可能的话)。

以下是数据结构的示例。每个对象遵循与第一个条目相同的布局。感谢您给我的任何指示!



entries: {
    2018-01-14T14:30:00-05:00: {
        name: "Jerry",
        guess: 75
    },
    2018-01-14T15:15:00-05:00: {},
    2018-01-14T19:15:00-05:00: {},
    2018-01-14T23:00:00-05:00: {},
    2018-01-15T00:00:00-05:00: {},
    2018-01-15T03:15:00-05:00: {},
    2018-01-15T06:30:00-05:00: {},
    2018-01-15T07:15:00-05:00: {},
    2018-01-15T11:30:00-05:00: {},
    2018-01-15T15:45:00-05:00: {},
    2018-01-15T19:15:00-05:00: {},
    2018-01-15T18:45:00-05:00: {},
    2018-01-16T14:45:00-05:00: {},
    2018-01-16T18:45:00-05:00: {}
}




1 个答案:

答案 0 :(得分:1)

假设您的条目类型是按以下方式定义的:

type Entry {
  name: String
  guess: Int
  timestamp: String
}

您可以像这样迭代entries对象的键:

return Object.keys(entries).map(key => {
  return Object.assign({ timestamp: key }, entries[key])
})

如果您打算通过GraphQL返回entries对象,那就太麻烦了,因为每个时间戳都必须定义为类型中的字段。即使您动态执行此操作,对基础数据的任何更改都可能导致最终出现无效架构。最简单的方法是使用自定义JSON标量as described here