【发布时间】:2020-07-08 00:48:29
【问题描述】:
我的 GraphQL 查询将 docID 和 docTitle 解析为 null。尽管正在从数据库中检索数据。仅返回 _id 字段。当我控制台日志时,我可以看到数据。
GraphQL 查询
query{
docs{
docId
docTitle
_id
}
}
我的解析器
const getDocs = async (_parent, _args, context, _info) => {
const docs = await context.app.models.docs.find()
return docs
}
文档架构
type Docs {
_id: ID!
docId: String
docTitle: String
}
在 GraphQL 操场上,这就是我得到的
{
"data": {
"getDocs": [
{
"docId": null,
"docTitle": null,
"_id": "5e7c9007f4c3"
}
]
}
}
但是当我控制台日志时,我可以看到所有字段的数据
[
{
_id: 5e7c9007f4c3,
docId: 'c18c-57e4b5134cbe',
docTitle: 'cloud',
__v: 0
}
]
请问我错过了什么?
【问题讨论】:
-
您好!请问,你能分享
docs架构吗? -
@Tunmee 我已经用架构更新了问题
-
我的意思是
docsmongoose 模式,而不是 graphql 类型。您使用类似new mongoose.Schema({ ... })定义的架构。我是根据您使用猫鼬的假设来问这个的,如果不是这样,请告诉我。 -
@Tunmee 是的,我使用的是猫鼬,但没有架构。因此,在定义我的模型时,我将猫鼬设置传递给 false 以允许我在没有架构
mongoose.model('docs', new mongoose.Schema({}, { strict: false }))的情况下使用它 -
在这种情况下,请尝试设置lean 选项。所以查询是这样的:
await context.app.models.docs.find({}, {}, { lean: true })
标签: javascript node.js mongodb mongoose graphql