问题描述
我想知道是否可以使用 Mongo DB 查询来过滤 GraphiQL 中的数据。
实际上,我使用 PyMongo、flask 和 GraphiQL 制作了一个 API。
Ex - 在 Mongo DB 里面的一个集合中我有以下 5 个文件 -:
Mongo DB 中的数据
{"_id":{"$oid":"5ff6ad894d0d2a1c6ce0fc3d"},"Serial_No":"1111","Time_Record":"2020-05-01 06:00:00"
}
{"_id":{"$oid":"5ff6ad894d0d2a1c6ce0fc3l"},"Time_Record":"2020-05-01 06:01:00"
}
{"_id":{"$oid":"5ff6ad894d0d2a1c6ce0fc3e"},"Time_Record":"2020-05-01 06:02:00"
}
{"_id":{"$oid":"5ff6ad894d0d2a1c6ce0fc3z"},"Time_Record":"2020-05-01 06:03:00"
}
{"_id":{"$oid":"5ff6ad894d0d2a1c6ce0fc3v"},"Time_Record":"2020-05-01 06:04:00"
}
现在不使用 GraphiQL,我在 MongoDB 中执行以下查询,以过滤“2020-05-01 06:00:00”和“2020-05-01 06”之间的“Serial_No”、“Time_Records”数据: 04:00",大小限制 = '2' & skip = '1' 用于分页。
def get_filter_data(Serial_No,from_date,to_date,number_limit,number_skip):
data = coll.find({"Serial_No": Serial_No,"Time_Record" : {'$gt': from_date,'$lt': to_date}}).limit(number_limit).skip(number_skip)
for col in data:
pprint.pprint(col)
print("Count is : ",number_limit)
return data
我很高兴!!!
它可以工作并提供所需的输出 -:
{"_id":{"$oid":"5ff6ad894d0d2a1c6ce0fc3e"},"Time_Record":"2020-05-01 06:03:00"
}
现在我想在 GraphiQL 中获得相同的输出
基本上,我不知道如何使用这个查询,尤其是如何在 GraphiQL 中提及这部分 {'$gt': from_date,'$lt': to_date}
coll.find({"Serial_No": Serial_No,'$lt': to_date}}).limit(number_limit).skip(number_skip)
解决方法
我建议使用来自 mongodb Official Doc 的 GraphQL 原生支持 其中还包括 Custom Resolver