2016-03-02 51 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

任何新的東西?現在有辦法對「或」查詢應用限制嗎? –