Mongo过滤器转换为GraphQL查询|必须是一个对象,得到_String_

时间:2018-12-18 20:31:08

标签: javascript mongodb graphql

有一种方法可以通过GraphQL将过滤器选项传递给Mongo?因为我尝试过这种方式,但是出现了错误 "message": "Parameter \"filter\" to find() must be an object, got {email: \"test@test.com\"}",

这是我的查询类型

users: {
      type: new GraphQLList(UserType),
      args: {
        filter: { type: GraphQLString }
      },
      resolve(_, { filter }, { req, res }) {
        // I tried several ways to get query string and give it to mongo into a object
        JSONFilter = JSON.parse(JSON.stringify(filter));
        return UserSchema.find(JSONFilter);
      }
    }

我的查询看起来像这样

query myReferrals {
  users(filter: "{email: \"test@test.com\"}"){ //I though this should be enough, but no!
    referrals{
      user{
        email
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

这是一个“错别字”,在我的查询中应该是这样的:

query myReferrals {
  users(filter: "{\"email\": \"test@test.com\"}"){ // Just Add `\"key\"` to key
    referrals{
      user{
        email
      }
    }
  }
}