GraphQL-处理嵌套数据

GraphQL-处理嵌套数据,graphql,Graphql,我的数据架构如下: { instrumentName: String, lastPrice { bid: Float, ask: Float } } 数据以Json格式存储在我的数据库中,如: { "instrumentName": "GOOGLE.N", "lastPrice": { "bid": 90.00, "ask": 105.00 } } 在GraphQL中,我必须将Gr

我的数据架构如下:

{
    instrumentName: String,
    lastPrice {
        bid: Float,
        ask: Float
    }
}
数据以Json格式存储在我的数据库中,如:

{
    "instrumentName": "GOOGLE.N",
    "lastPrice": {
        "bid": 90.00,
        "ask": 105.00
    }
}
在GraphQL中,我必须将GraphQL模式定义为:

type Instrument {
    instrumentName: String
    lastPrice: Price
}
type Price {
    bid: Float
    ask: Float
}
当我构建数据获取程序时,仪器获取程序很好。我只是从数据库中选取记录作为前面的示例数据。 但是,当它递归地获取价格时,由于买卖价格已经从仪器获取程序中的数据库中加载,我想知道是否有一种方法可以“告诉”价格获取程序以前的样本数据,例如,将数据放入价格获取程序的数据获取环境中?
或者我可以定义一个不同的(嵌套的)graphQL模式来处理这种情况吗?

我目前正在使用apollo server,并且至少(不知道其他graphQL实现的情况),应该为您解决这个问题,所以只需要一个数据库获取,如果您的
仪器
取数器返回完整的数据结构:

const resolvers = {
    Query: {
        instrument: (parent, args, context, info) => {
            instrumentName: "GOOGLE.N",
            lastPrice: {
                bid: 90.00,
                ask: 105.00
            }                    
        }
    },

    // Following resolver should not be needed as will be handled by default resolver
    //  Instrument: {
    //      lastPrice: (parent, args, context, info) => {
    //          ...
    //      }
    //  }
}

如果您使用的不是apollo server,我不确定上述情况是否成立。

我使用的是GraphQL java。最后我发现所有的东西都可以递归地描述为映射。所以它现在起作用了。谢谢你,约翰:)