Синкано условная фильтрация по нескольким полям

Я пытаюсь перечислить 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);
Другие вопросы по тегам