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 错误