2016-04-13 57 views
1

我正在嘗試列出一個類中的DataObjects。我想根據多個字段上的條件查詢來過濾DataObjects的列表。 要選擇基於字段1 = XXX或場2 = XXX對多個字段進行Syncano條件篩選

對於如數據對象: 在課堂庫存:

+----------------------------------+ 
| Item | Quantity | Price  | 
+----------------------------------+ 
| X  | 10  | 30  | 
|         | 
| Y  | 20  | 10  | 
+----------------------------------+ 

var filter = { 
     'Quantity': { '_eq': 10 } OR 
     'Price': { '_eq': 10 } 
    }; 

與選擇項目數量= 10或價格= 10.如何才能做到這一點?

回答

2

做到這一點的最好方法是將您的查詢分解爲兩個獨立的調用並將它們組合起來。 Syncano使用AND來組合查詢,因此對於OR,您必須將它們分成兩個獨立的API調用。

// v1 Syncano JS SDK 
var Syncano = require("syncano"); // CommonJS 
var connection = Syncano({accountKey: "ACCOUNT_KEY"}); // or API Key 
var DataObject = connection.DataObject; 

var list = {instanceName: "INSTANCE_NAME", className: "CLASS_NAME"}; 
var filter1 = { 
    'Quantity': { '_eq': 10 } 
}; 
var filter2 = { 
    'Price': { '_eq': 10 } 
}; 

var QtyArray = []; 
var PriceArray = []; 

DataObject.please().list(list).filter(filter1).then(function(res){ 
    // res is an array of filter 'Quantity' 
    QtyArray = res; 
}); 

DataObject.please().list(list).filter(filter2).then(function(res){ 
    // res is an array of filter 'Price' 
    PriceArray = res; 
}); 

var comboArray = QtyArray.concat(PriceArray); 
+0

這似乎是一個簡單的解決方案,但我一直在尋找實現這一目標的一個電話,而不是2。此外,該解決方案將需要去除兩個陣列添加重複條目的額外的邏輯。 –

相關問題