2015-01-27 2 views
0

Я пытаюсь извлечь все объекты Box из моей базы данных анализа. Выполняя это, я хочу отфильтровать те, которые я привязал для удаления. Я сделал это, закрепив их:Parse PFQuery doesNotMatchKey: inQuery:

[object pinWithName:@"DeleteObjectPin"];

Я просто создать еще один запрос, который получает все объекты возлагали должны быть удалены, а затем сделать мой основной запрос не включать эти результаты.

PFQuery *mainQuery = [PFQuery queryWithClassName:@"Box"]; 

PFQuery *subQuery = [PFQuery queryWithClassName:@"Box"]; 
[subQuery fromPinWithName:@"DeleteObjectPin"]; 

[mainQuery whereKey:@"objectId" doesNotMatchKey:@"objectId" inQuery:subQuery]; 

Имеют смысл? Получить объекты, которые не соответствуют объектам в этом подзапросе, то есть те, которые я привязал для удаления.

Так почему же, когда я добавляю это ограничение whereKey к моему основному запросу, получаю ли я нулевые результаты? Обратите внимание, например, у меня есть 5 объектов без этого имени булавки и 2 с ним. Независимо от соотношения, я не получаю никаких результатов.

Ожидает, что такой запрос будет работать?

Любая помощь всегда приветствуется, спасибо.

+0

вы можете плз разместить код ты придавить объект и код, в котором вы запрашиваете все объекты в «подзапрос»? – YuviGr

ответ

0

Почему бы не начать свой объект со значением по умолчанию при каждом его создании и изменить его, как и вы.

После того, как вы хотите, чтобы забрать все объекты без @ "DeleteObjectPin" вам просто:

PFQuery * ObjectQuery = [PFQuery queryWithClassName: @ "Box"]; [objectQuery whereKey: equalTo:];

// затем извлечь все объекты с блока или что-то

+0

Хотя это не совсем соответствует желаемому подходу, я вижу, что это будет работать на его месте. Моя проблема с вашим предложением заключалась бы в том, чтобы добавлять и отслеживать этот атрибут для каждого класса, который мне нужен для достижения этого, и это боль, но это сработает! –

+0

Вместо этого я решил проблему, просто выбрав все объекты с помощью 'PFQuery' и' fromPinWithName: '. Тогда в моем основном запросе эти объекты не включаются. Я изначально был обеспокоен тем, что это вызвало бы два запроса сервера, но, оказывается, он только пингует сервер один раз, поскольку метод fromPinWithName: 'получает данные из локальной базы данных. Решение моей проблемы. –

+0

Sweet :) Рад слышать, как вы это решили! – YuviGr