Выполнение фильтров логических операторов только для объектов GraphQL в формате JSON

#graphql-js #prisma-graphql #powerbi-custom-visuals #jsonata

#GraphQL-js #Prisma-GraphQL #PowerBI-пользовательские визуальные эффекты #jsonata

Вопрос:

Спасибо за помощь. Я пытаюсь выполнить оператор AND / OR в GraphQL без базы данных.

Ниже приведен запрос, который необходимо выполнить для набора данных, а не для базы данных. Пожалуйста, поймите, у меня нет полномочий для подключения к какой-либо базе данных.

     {
    customVisualsData(_filter: {and: [{expression: {field: "Country", like: "Canada"}},{expression: {field: "Profit", gt: "5000"}}]}) {
    Country
    DiscountBand
    Product
    Segment
    Profit
    }
    }
 

Преобразование dataset / JSON-объекта выглядит следующим образом.

    
    [
    
     {
    "Country": "Canada",
    "DiscountBand": "High",
    "Product": "Paseo",
    "Segment": "Government",
    "COGS": 1477815,
    "GrossSales": 2029256,
    "ManufacturingPrice": 70,
    "UnitsSold": 12230.5,
    "Profit": 300289.99999999994
     },
     {
    "Country": "United States of America",
    "DiscountBand": "High",
    "Product": "VTT",
    "Segment": "Small Business",
    "COGS": 1461250,
    "GrossSales": 1753500,
    "ManufacturingPrice": 750,
    "UnitsSold": 5845,
    "Profit": 74288
     }
    
    ]

 

Построитель схем я использовал для создания построителя запросов GraphQL.

 var schema = buildSchema(`
        type customVisualObject {
            Country: String
            DiscountBand: String
            Product: String
            Segment: String
            COGS: Float
            GrossSales: Float
            ManufacturingPrice: Int
            UnitsSold: Float
            Profit: Float
        } 
        type Query {
            customVisualsData(_filter: FilterInput): [customVisualObject]
        }
        input FilterExpressionInput {
            field: String!
            eq: String
            gt: String
            gte: String
            like: String
        }
        input FilterInput {
            expression: FilterExpressionInput
            and: [FilterInput!]
            or: [FilterInput]
            not: [FilterInput!]
        }
`);
 

Пожалуйста, дайте мне знать, если кто-нибудь знает, как настроить распознаватель для этого в GraphQL?
Кто-нибудь знает библиотеку JSON-ata или GraphQL для выполнения такого сложного запроса к объекту JSON, а не к базе данных?
Я ценю вашу помощь.