这是我试图检索的文档示例:
{
"ref": Ref(Collection("Word"), "270608756095582738"),
"ts": 1594331477980000,
"data": {
"word": "ablatitious",
"letters": [
{
"letter": "a",
"occurrence": 2
},
{
"letter": "b",
"occurrence": 1
},
{
"letter": "l",
"occurrence": 1
},
{
"letter": "t",
"occurrence": 2
},
{
"letter": "i",
"occurrence": 2
},
{
"letter": "o",
"occurrence": 1
},
{
"letter": "u",
"occurrence": 1
},
{
"letter": "s",
"occurrence": 1
}
],
"length": 11
}
}
这是我的架构
type Letter @embedded {
letter: String! @unique
occurrence: Int!
}
type Word {
word: String! @unique
letters: [Letter]!
length: Int!
}
input LetterInput {
letter: String!
occurrence: Int!
}
type Query {
Word(length: Int!): Word
WordByLetters(letters: [LetterInput!]): Word
}
这是我尝试使用此架构更新架构时遇到的错误:
Schema does not pass validation. Violations:
Type mismatch: field 'letters' defined at object 'Word' has type 'Letter'. (line 19, column 17):
WordByLetters(letters: LetterInput): Word
^
如果我将类型切换LetterInput
到查询类型Letter
中WordByLetters
,我会收到此错误
Type 'Letter' is not an input type type. (line 19, column 26):
WordByLetters(letters: Letter): Word
^
所以,很明显,我需要使用一个输入类型,这是有道理的。没有意义的是这两个错误中的第一个。有人可以解释为什么吗?