Javascript 带有graphql和document.toObject()的mongodb_id
让我们使用一个基本的mongodb查询,返回一项:Javascript 带有graphql和document.toObject()的mongodb_id,javascript,mongodb,mongoose,graphql,graphql-js,Javascript,Mongodb,Mongoose,Graphql,Graphql Js,让我们使用一个基本的mongodb查询,返回一项: const result = await db.myCollection.findById('xxxx') return result; 这个提供给graphql的查询结果运行良好 但是现在,如果我返回一个result.toObject(),它就不再工作了 我得到了以下错误: "message": "Cannot return null for non-nullable field MyCollection.id." 为什么使用toObje
const result = await db.myCollection.findById('xxxx')
return result;
这个提供给graphql的查询结果运行良好
但是现在,如果我返回一个result.toObject()
,它就不再工作了
我得到了以下错误:
"message": "Cannot return null for non-nullable field MyCollection.id."
为什么使用
toObject()
,\u id
和id
之间的映射无法完成?MongoDB生成的id将是一个\u id
字段——这就是mongoose
默认情况下,Mongoose为每个模式分配一个id虚拟getter
它将documents _id字段转换为字符串,或者
对于objectid,它的十六进制字符串。如果您不想将id获取程序添加到
您的模式,您可以通过在模式中传递此选项来禁用它
施工时间
这里的关键是id
字段是一个虚拟getter。为了在生成的对象中包含这些对象,您必须将适当的选项传递给toObject
:
result.toObject({ virtuals: true })
有关更多详细信息,请参阅或