Я пытаюсь написать запрос, который в SQL будет выглядеть примерно так:
select * from WorkOrder wo
where wo.userId = 1
and wo.isSynced = 0
and wo.status in ('COMPLETE', 'REJECTED', 'SUSPENDED_NO_ACCESS', 'SUSPENDED_OTHER');
Я добавил индекс для userId, isSynced и статуса.
Если я создам запрос, подобный следующему, он будет работать до тех пор, пока я фильтрую только два разных значения статуса. Как только я добавляю 3 или более, он не возвращает никаких результатов. Я делаю что-то не так или мне нужно подходить к этому совершенно по-другому?
//this works
var keyRange = ydn.db.KeyRange.bound([userId, 0, Status.Complete],
[userId, 0, Status.REJECTED]);
//this doesn't work
var keyRange = ydn.db.KeyRange.bound([userId, 0, Status.Complete],
[userId, 0, Status.Suspended_AccessUnavailable],
[userId, 0, Status.REJECTED]);
var iterator = new ydn.db.IndexValueIterator(Store.WorkOrder, 'userId, isSynced, status', keyRange);
return db.values(iterator)