Это так.
MongoDB полагается на ObjectID для отношений, поэтому вам, возможно, придется добавить preserveObjectIds: true
к параметрам вашего плагина:
{
resolve: "gatsby-source-mongodb",
options: {
dbName: "KathaDB",
collection: "posts",
server: {
address: "somecluster",
port: 27017,
},
auth: {
user: "someuser",
password: "somepasswd",
},
extraParams: {
replicaSet: "test",
ssl: true,
authSource: "admin",
retryWrites: true,
preserveObjectIds: true,
},
preserveObjectIds: true, // <= here
},
};
Я не уверен, что gatsby-source-mongodb
создает отношения из коробки (я не думаю, что это так, если моя память верна), но с ObjectIds
вы можете создавать отношения внешнего ключа с помощью GraphQL.
Есть два способа выполнения этого в Gatsby:
- Использование сопоставлений в
gatsby-config.js
- Использование GraphQL
@link
директивы через настройку схемы Gatsby (из v2.2)
Я рекомендую второй вариант, так как это больше GraphQL способ делать что-то и происходит в gatsby-node.js
, где выполняется большинство операций узла. Однако если вы начинаете с Gatsby и GraphQL, первый вариант может быть проще настроить.