title: Which syntax for filtering queries in Graphiql?
body: <p>New to graphql and started playing with graphiql.
  I have a Product data type</p>
  
  <pre><code>  type Product {
      _id: String
      name: String
      price: Float
    }
  </code></pre>
  
  <p>I have mongodb populated with some products</p>
  
  <pre><code>{ "_id" : ObjectId("5a61b31e009c0bef5d724a47"), "name" : "GROUND COFFEE", "price" : 3.06 }
  { "_id" : ObjectId("5a61b31e009c0bef5d724a48"), "name" : "PORK SAUSAGES 500g",  "price" : 4.39 }
  { "_id" : ObjectId("5a61b31e009c0bef5d724a49"), "name" : "MILK UHT 1LT", "price" : 1.29 }
  { "_id" : ObjectId("5a61b31e009c0bef5d724a4a"), "name" : "HEINEKEN PREMIUM LIGHT 33CL", "price" : 1.61 }
  </code></pre>
  
  <p>In graphiql I can execute a query like this</p>
  
  <pre><code>query {
    products{
       name,
      price
    }
  }
  
  Query result is
  
  {
    "data": {
      "products": [
        { "name" : "GROUND COFFEE", "price" : 3.06 },
        { "name" : "PORK SAUSAGES 500g",  "price" : 4.39  },
        { "name" : "MILK UHT 1LT", "price" : 1.29 },
        { "name" : "HEINEKEN PREMIUM LIGHT 33CL", "price" : 1.61 }
      ]
    }
  }
  </code></pre>
  
  <p>Wow, that's fine.
  So next step is: now I want only products with price greater than 2.0
  And I face two problems I do not know how to solve</p>
  
  <p>1) Which is the correct syntax to implement filtering?<br>
  2) How comparison operators have to be specified? And how this specification maps to mongodb comparison operators?</p>
  
  <p>I tried with</p>
  
  <pre><code>query {
    products(filter:{price: {gt:2.0} }){
       name,
      price
    }
  }
  </code></pre>
  
  <p>but I get an error for "filter":</p>
  
  <p>Unknown argument "filter" on field "products" of type "Query".
  I find no way to do this ...</p>
  
  <p><strong>UPDATE</strong>
  @diego</p>
  
  <pre><code>const typeDefs = [`
    type Query {
      product(_id: String): Product
      products: [Product]
    }
  
    type Product {
      _id: String
      name: String
      price: Float
    }
  
    type Mutation {
      createProduct(name: String, price: Float): Product
    }
  
    schema {
      query: Query
      mutation: Mutation
    }
  `];
  
  const resolvers = {
    Query: {
      product: async (root, {_id}) =&gt; {
        return prepare(await Products.findOne(ObjectId(_id)))
      },
      products: async () =&gt; {
        return (await Products.find({}).toArray()).map(prepare)
      },
    },
    Mutation: {
      createProduct: async (root, args, context, info) =&gt; {
        const res = await Products.insert(args)
        return prepare(await Products.findOne({_id: res.insertedIds[1]}))
      },
    },
  }
  </code></pre>