MongoDB、Express + GraphQL 服务器:使用新字段更新数据模型,但查询不会获取新字段

Posted

技术标签:

【中文标题】MongoDB、Express + GraphQL 服务器:使用新字段更新数据模型,但查询不会获取新字段【英文标题】:MongoDB, Express + GraphQL server: Updated data model with new fields, but queries do not pick up new fields 【发布时间】:2020-06-21 13:24:39 【问题描述】:

我结合 Express + MongoDB 创建了一个 GraphQL 服务器。我从以下数据模型开始:

const AuthorSchema = new Schema(
  name:  type: String, required: true ,
  age:  type: Number, required: true ,
);

查询 + 突变正在工作,但我决定向数据模型添加更多字段:

const AuthorSchema = new Schema(
  name:  type: String, required: true ,
  age:  type: Number, required: true ,
  bio:  type: String, required: true ,
  picture:  type: String, required: true 
);

我可以通过新字段的突变添加新作者,但由于某种原因,查询不会返回新字段。


  "errors": [
    
      "message": "Cannot query field \"bio\" on type \"Author\".",
      "locations": [
        
          "line": 3,
          "column": 5
        
      ]
    
  ]
```

【问题讨论】:

【参考方案1】:

您的 GraphQL 类型与您的 Mongoose 架构不同。如果您将一个字段添加到 AuthorSchema 架构并希望将此字段公开为您的 Author 类型上的字段,那么您需要在 GraphQL 架构中显式定义该字段。

【讨论】:

以上是关于MongoDB、Express + GraphQL 服务器:使用新字段更新数据模型,但查询不会获取新字段的主要内容,如果未能解决你的问题,请参考以下文章

Express-graphql“在运行突变和查询时无法使用 mongodb 读取未定义的属性‘集合’”

如何在本地使用带有 express 的 graphql 和带有 mongoose 的 mongodb 来检索文档?

使用 Apollo-GraphQL、MongoDB-Mongoose 和 Node-Express 构建的 React 应用程序在生产构建中返回 404 错误

Express GraphQL TTFB 非常长

如何使用 GraphQL 在 MERN 应用程序的 MongoDB 模式中插入数组字段?

在 Mutation 中使用 GraphQL Args 属性