Синкано условная фильтрация по нескольким полям
Я пытаюсь перечислить DataObjects в классе. Я хочу отфильтровать список объектов DataObject на основе условного запроса по нескольким полям. Чтобы выбрать объект DataObject на основе field1 = xxx или field2 = xxx
Например, в классе Inventory:
+----------------------------------+
| Item | Quantity | Price |
+----------------------------------+
| X | 10 | 30 |
| |
| Y | 20 | 10 |
+----------------------------------+
var filter = {
'Quantity': { '_eq': 10 } OR
'Price': { '_eq': 10 }
};
Выберите пункт с количеством = 10 или ценой = 10. Как этого добиться?
1 ответ
Лучший способ сделать это - разбить ваш запрос на два отдельных вызова и объединить их. 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);