Сравнение двух массивов в запросе разбора
Как мы узнаем, является ли какой-либо элемент массива частью другого массива в запросе?
var followers = []; // Array of Parse User pointers
query.howTo("attending", followers); // attending is an array of User Pointers.
То есть запрос должен совпадать, если какой-либо один или несколько элементов в followers
существует в attending
,
query.containsAll
соответствует всем элементам. Есть ли что-то вроде query.containsSome
?
1 ответ
Я был почти уверен, что вы можете запросить два массива. Взгляните на документы, чтобы проверить лучше.
Если это не так, вы можете использовать составные запросы.
Например, сгенерировать массив запросов на основе массива последователей. [ForEach] - лучшая идея в этом случае, но я предполагаю, что здесь цикл for.
var followers = []; //array of users
var mainQuery = new Parse.Query(YourOtherObject);
//for each one of followers
var orQuery = new Parse.Query(YourOtherObject);
orQuery.equalTo("attending", follower);
mainQuery = Parse.Query.or(mainQuery, orQuery);
Это решение может быть неэффективным, если ваши последователи слишком велики. Но в любом случае я все же рекомендую использовать отношения в этом случае, поскольку вы извлекаете выгоду из обратного и можете получить из запроса пользователя, где он присутствует, как присутствующий в другом объекте.