У меня есть база данных Mongo с коллекцией под названием 'words', которая содержит такие документы:
{
_id: "xxxx",
word: "AA",
definition: "Cindery lava"
}
У меня есть приложение для узлов, которое я использую для запроса и отображения информации из коллекции слов с помощью GraphQL. Я создал схему GraphQL и модель Mongoose, как показано ниже.
// Schema
const WordType = new GraphQLObjectType({
name: 'Word',
fields: () => ({
id: {type: GraphQLID},
word: { type: GraphQLString },
definition: { type: GraphQLString },
})
})
const RootQuery = new GraphQLObjectType({
name: 'RootQueryType',
fields: {
detailsForWord: {
type: WordType,
args: {word: {type: GraphQLString}},
resolve(parent, args) {
return Word.find({word: args.word});
}
},
allWords: {
type: new GraphQLList(WordType),
resolve(parent, args) {
return Word.find({}).limit(100);
}
}
}
});
// model
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const wordSchema = new Schema({
word: String,
definition: String,
});
Моя проблема в том, что запрос «allWords» работает идеально, но «detailsForWord» не работает вообще, и я понятия не имею, почему.
В GraphiQL я использую следующие запросы:
{
allWords {
word
definition
}
}
... и
{
detailsForWord(word: "AA") {
word
definition
}
}
Первый возвращает записи, но последний всегда возвращает следующее в GraphiQL:
{
"data": {
"detailsForWord": {
"id": null,
"word": null,
"definition": null
}
}
}
Есть идеи, почему запрос "detailsForWord" не выполняется?