Родитель является только идентификатором в распознавателе GraphQL - PullRequest
0 голосов
/ 24 июня 2019

Итак, у меня есть реляционная база данных Монго, которая выглядит примерно так

Location {
    _id: ...
    shopIDs: <List of Shop IDs in another collection>
}

Shops {
    _id: ...
    ...
}

Также у меня уже есть моя установка GraphQL и схема. Но чтобы получить запрос типа

locations {
    shops {
        name
    }
}

Мне нужно создать еще один Resolver, который соединяет поле shopIDs с коллекцией магазина, верно?

Итак, я сделал что-то вроде:

Location: {
        shopIDs: async ({ shopIDs }, args, context) => {
            return await Shop.find({ _id: { $in: shopIDs } });
        }
},

Но shopIDs не определены, и когда я консоль зарегистрировал родительский объект, это был только идентификатор родительского объекта. Теперь мой вопрос: действительно ли мне нужно снова искать родителя с помощью mongoose, чтобы получить ShopID? Я не нашел ни одного связанного с этим Вопроса, поэтому надеюсь, что на него еще не ответили. Спасибо!

1 Ответ

0 голосов
/ 04 июля 2019

Я не совсем уверен, почему, но проблема была решена. Первый параметр, безусловно, является родительским, так что вы можете получить доступ к идентификатору оттуда и искать дочерний элемент, не просматривая родительский элемент снова. Если идентификатор ребенка не определен, он, вероятно, вызван самой моделью мангуста. Поэтому, если у вас есть похожая проблема: Дважды проверьте ваши схемы и убедитесь, что поле действительно определено.

...