2016-04-13 39 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。此外,该解决方案将需要去除两个阵列添加重复条目的额外的逻辑。 –

相关问题