用于特定模式的 Apollo graphql typedef

Posted

技术标签:

【中文标题】用于特定模式的 Apollo graphql typedef【英文标题】:Apollo graphql typedef for a paticular schema 【发布时间】:2021-11-28 10:55:25 【问题描述】:

这是我的帖子架构。合适的 gql typedef 应该是什么。

    const postSchema = new mongoose.Schema(
  
    author: 
      type: mongoose.Schema.Types.ObjectId,
      ref: "user",
      required: true,
    ,
    description: 
      type: String,
    ,
    image:  type: String, required: true ,
    likes: [ type: mongoose.Schema.Types.ObjectId, ref: "user" ],
  ,
  
    timestamps: true,
  
);
module.exports = mongoose.model("post", postSchema);

用户架构仅包含名称、电子邮件、profile_pic 和密码。

如果我只获取喜欢特定帖子的用户的名称和 Profile_pic,那么查询应该是什么?

【问题讨论】:

【参考方案1】:

在 typeDefs 中,您必须编写此代码来定义类型。

首先导入gql-

const gql = require("apollo-server-express");

然后添加这个-

module.exports = gql`
    extend type Query 
        // if you want to get all post, You must give array of PostInfo
        Post: [PostInfo]
        //If you want to get by Id
        PostById(id: ID!): PostInfo
    
    type PostInfo
        author: User
        description: String
        image: String
        likes: User
        createdAt: Date
        updatedAt: Date
    
    type User 
        name: String
        email: String
        profile_pic: String
        // You shouldn't give password any where.
    
`;

我觉得对你有帮助!

【讨论】:

以上是关于用于特定模式的 Apollo graphql typedef的主要内容,如果未能解决你的问题,请参考以下文章

Apollo/GraphQL:用于时间戳的字段类型?

(Apollo) GraphQL 合并模式

使用 apollo 捕获来自 graphql 的特定响应

如何立即触发 apollo graphql 订阅?

Apollo GraphQL DataLoader DynamoDb

Apollo GraphQL - 将 .graphql 模式导入为 typeDefs