2017-08-09 62 views
0

我的解析器得到如何在GraphQL查询中选择一部分对象数组?

{ adminMsg: 
    [ 
    {active: “y”, text1: “blah1" } , 
    {active: “n”, text1: “blah2" } 
    ] }; 

我的查询:

{ 
    adminWarn { 
    adminMsg { 
     active, text1 
    } 
    } 
} 

我只想数组元素与条件:有效= 'Y'

我在GQL Dokumentation发现没有办法写条件我的查询。 GQL中是否有解决方案?

回答

1

使用决心参数的个数就可以解决问题:

const adminWarnList = new GraphQLObjectType({ 
    name: 'adminWarnReportList', 
    fields:() => ({ 
     adminMsg: { 
      type: new GraphQLList(adminWarnFields), 
     }, 
    }), 
}); 

const adminWarn = { 
    type: adminWarnList, 
    args: { 
     active: { type: GraphQLString }, 
    }, 
    resolve: (parent, args, context) => { 
     ... 
     let reportdata = context.loadData(); 

     if (args.active == 'y') { 
        let filteredItems = reportdata.filter(function(item) { 
         return item.active != null && item.active != 'y'; 
        }); 

        reportdata = filteredItems; 
     } 

     return { adminMsg: reportdata }; 
    }, 
}; 
相关问题