ApolloGraphQL每个文档都返回整个子文档集合。
创始人
2024-09-09 10:00:35
0

可以在schema中定义Resolver,通过Projection选择与查询的字段保持一致的子文档。例如,假设我们有一个user集合,每个用户都有一个地址子文档集合,我们可以定义如下Resolver:

Query: {
  users: (_, args, { db }) => {
    return db.collection('users').find().toArray()
  },
},
User: {
  addresses: (parent, _, { db }, info) => {
    const projection = Object.keys(info.fieldNodes[0].selectionSet.selections[0].selectionSet.selections[0].selectionSet.selections[0].selectionSet.selections[0].selectionSet).reduce((acc, current) => { // 通过Projection选择保留的字段
      acc[current] = 1
      return acc
    }, {})
    return db.collection('addresses').find({ userId: parent._id }).project(projection).toArray()
  },
}

在这个例子中,我们在users Query中返回所有的用户,然后在User Resolver中选择与查询的addresses字段保持一致的子文档。通过projection,我们只返回与查询保持一致的字段,从而避免了返回整个子文档集合的问题。

相关内容

热门资讯

七分钟了解!指尖跑得快有外 挂... 七分钟了解!指尖跑得快有外 挂吗,钱塘十三水怎么刷好牌,细节方法(有挂透视)钱塘十三水怎么刷好牌辅助...
2分钟了解!葫芦娃捉鸡有挂吗,... 2分钟了解!葫芦娃捉鸡有挂吗,福建十三张专用平台辅助器,2025新版教程(有挂透视)1、超多福利:超...
五分钟了解!福麻圈经典跑得快外... 五分钟了解!福麻圈经典跑得快外 挂,八闽十三张软件,教你教程(有挂神器)一、福麻圈经典跑得快外 挂A...
5分钟了解!吉祥麻将软件黑科技... 5分钟了解!吉祥麻将软件黑科技,中至赣牌圈棋牌有挂吗,AA德州教程(有挂技巧);1、超多福利:超高返...
八分钟了解!荆门麻将app脚本... 八分钟了解!荆门麻将app脚本,闽游十三水好牌率,细节揭秘(有挂规律)在进入闽游十三水好牌率辅助挂后...
一分钟了解!易棋游戏外 挂,欢... 一分钟了解!易棋游戏外 挂,欢乐达人有没有外挂,可靠教程(有挂细节)1、全新机制【欢乐达人有没有外挂...
二分钟了解!陕西欢喜麻将其实是... 二分钟了解!陕西欢喜麻将其实是有挂的,决战手机版外挂,扑克教程(有挂规律)陕西欢喜麻将其实是有挂的辅...
五分钟了解!28圈辅助工具,皮... 五分钟了解!28圈辅助工具,皮皮跑得快辅助器免费版,德州论坛(有挂神器)1、金币登录送、破产送、升级...
九分钟了解!全民比鸡怎么能赢,... 九分钟了解!全民比鸡怎么能赢,钱塘十三水辅助软件出售,存在挂教程(有挂软件);1、钱塘十三水辅助软件...
9分钟了解!旺旺江苏手机麻将有... 9分钟了解!旺旺江苏手机麻将有挂吗,新蜜瓜牛牛辅助器,详细教程(有挂揭秘)进入游戏-大厅左侧-新手福...