2016-03-02 65 views
1

使用Parse“或”Query操作符时,尝试在单个查询中使用限制时是否存在错误? 没有在他们的网站上记录关于or操作符与限制操作符一起使用的情况,但我提出的一个示例查询是想要获取记录的最后一次出现以及给定类型的所有将来记录。解析“或”带限制的查询返回所有记录,忽略单个查询的限制

我写这样的查询:

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){//....}); 

今天的日期,这将返回所有以前的记录,以及未来所有的记录,完全无视“或”运营商内部由第一查询所施加的限制。我错过了什么,或者这是一个错误?

回答

2

遗憾的是它没有在API文档说明,但确实让在developer's guide的外观:

请注意,我们不这样做,但是,支持的GeoPoint或者非过滤约束(例如近,withinGeoBox,限制,跳过,升序/降序,包括)在复合查询的子查询中。

+0

感谢您的支持 - 希望API文档可以获得开源代码,以便在解析完全开放源代码时修改它们。 – pilgrimtech

+0

任何新的东西?现在有办法对“或”查询应用限制吗? –