使用Parse"或"查询运算符,尝试在单个查询中使用限制时是否存在错误? 关于或运算符与限制运算符一起,他们的网站上没有记录任何内容,但我提出的一个示例查询是想要获取记录的最后一次出现以及给定类型的所有未来记录。
我写这样的查询:
var Appointment = Parse.Object.extend("Appointment");
var Client = Parse.Object.extend("Client");
var query = new Parse.Query(Client);
query.equalTo("objectId",client.id);
//get the last appointment whose start date occurs prior to now
var pastAppointmentQuery = new Parse.Query(Appointment);
pastAppointmentQuery.matchesQuery("Clients", query);
pastAppointmentQuery.lessThanOrEqualTo("Start",new Date());
pastAppointmentQuery.descending("Start").limit(1);
//get future appointments whose start date occurs after now (no limit)
var futureAppointmentQuery = new Parse.Query(Appointment);
futureAppointmentQuery.matchesQuery("Clients", query);
futureAppointmentQuery.greaterThanOrEqualTo("Start",new Date());
var compoundQuery = Parse.Query.or(pastAppointmentQuery,futureAppointmentQuery)
.find().then(function(appts){//....});
在今天的日期,这将返回所有先前的记录以及所有未来的记录,完全忽略第一个查询在"或"中的限制。运营商。我错过了什么,或者这是一个错误?
答案 0 :(得分:2)
不幸的是,它没有在API文档中声明,但确实在developer's guide中出现:
但是,请注意,我们不支持复合查询的子查询中的GeoPoint或非过滤约束(例如,在GeoBox内,限制,跳过,升序/降序,包括)。