预期可迭代,但未找到用于现场的

时间:2019-03-10 18:43:55

标签: javascript sqlite graphql

使用GraphQL和SQLite,这是我的查询:

{
book {
  id
  authors {
    name
  }
 }
}

类型:

  type Book {
    id: ID!
    title: String
    actors: [Author!]!
  }
  type Author {
    id: ID!
    name: String
  }

这是我的决心:

const resolvers = {
  Query: {
        book: async (_, __, { db }) => {
      return await db.all('SELECT * FROM books');
    },
  }
};

错误是:

  

“ message”:“预期可迭代,但未在字段中找到一个   Book.authors。”,

1 个答案:

答案 0 :(得分:0)

在您的查询解析器中,您仅从选择的val df = Seq(("2018-01-01", "2018-03-01", 2,"contact","open","me1@example.com"), ("2018-02-01","2018-03-01",1, "contact","open","me1@example.com"), ("2018-01-01","2018-03-01",1, "contact","open","you@example.com"), ("2018-02-01","2018-03-01",1, "contact","open","me1@example.com"), ("2018-01-01","2018-02-01",1, "contact","open","me1@example.com"), ("2018-01-01","2018-02-01", 1, "contact","open","you@example.com")). toDF("from", "to", "pressroom_id","category","event","email") df.show() +----------+----------+------------+--------+-----+---------------+ | from| to|pressroom_id|category|event| email| +----------+----------+------------+--------+-----+---------------+ |2018-01-01|2018-03-01| 2| contact| open|me1@example.com| |2018-02-01|2018-03-01| 1| contact| open|me1@example.com| |2018-01-01|2018-03-01| 1| contact| open|you@example.com| |2018-02-01|2018-03-01| 1| contact| open|me1@example.com| |2018-01-01|2018-02-01| 1| contact| open|me1@example.com| |2018-01-01|2018-02-01| 1| contact| open|you@example.com| +----------+----------+------------+--------+-----+---------------+ val df1 = df.where(col("category") === lit("contact") && col("event") === lit("open")) .groupBy("pressroom_id", "from", "to") .agg(count("email").cast("integer").as("something")) df1.show() +------------+----------+----------+---------+ |pressroom_id| from| to|something| +------------+----------+----------+---------+ | 2|2018-01-01|2018-03-01| 1| | 1|2018-01-01|2018-03-01| 1| | 1|2018-02-01|2018-03-01| 2| | 1|2018-01-01|2018-02-01| 2| +------------+----------+----------+---------+ 中解析import org.apache.spark.sql.functions._

如果您希望能够查询books'SELECT * FROM books'并且只有一个解析器,则必须返回两个对象,即必须在解析器中生成并返回完整的对象{ {1}}。