如何仅通过 mongoose 传递我在 GraphQL 中需要的数据
Posted
技术标签:
【中文标题】如何仅通过 mongoose 传递我在 GraphQL 中需要的数据【英文标题】:How to pass through mongoose only the data I need in GraphQL 【发布时间】:2020-08-04 21:07:30 【问题描述】:通过 GraphQL,graphql 客户端可以只过滤他需要的数据。
然而,相比之下,在我使用 mongoose 的实现中,所有数据都是从数据库请求的,没有应用投影,因此会花费不必要的处理和带宽。
Query:
getCustomers: async (parent, args, models , info) =>
const Users = await models.User.find()
return Users
,
,
如何将 mongoose 投影与 GraphQL 结合使用,仅请求数据库,仅请求我需要的数据?
【问题讨论】:
【参考方案1】:请参阅doc。将投影参数传递给查找方法
// 1 to include and 0 to exclude
// Not necessary to explicitly specify _id: 1 to return the _id field. As defult it is included
models.User.find(,user.propertyname:1, user.propertyname:1,.. ...)
【讨论】:
对不起,我不明白。我知道投影是如何工作的,但我不明白如何在没有大量 IF 的情况下使用 info 变量中包含的数据自动传递 graphql 客户端请求的参数。 您必须根据请求的字段动态构建投影。以上是关于如何仅通过 mongoose 传递我在 GraphQL 中需要的数据的主要内容,如果未能解决你的问题,请参考以下文章
node js中的异步编程通过mongoose模型传递常量/预定义的强制值
Node.js / Express / Mongoose - 如何发送 JSON 以及对象视图?