2015-11-06 1 views
0

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

Примером может помочь:

У меня есть Person класс, который хранит firstName и lastName. Я хотел бы отправить PFQuery, который ищет Person объектов, соответствующих названию. В частности, лицо должно считаться совпадением, если если какой-либо «компонент» первого или последнего имени начинается с предоставленного условия поиска.

Например, имя «Mary Beth Smith-Jones» следует рассматривать как матч для beth и bet, но не eth.

Для этого у меня есть триггер beforeSave для класса Person, который разбивает имена и фамилии человека на отдельные компоненты (а также их нижние регистры). Это означает, что моя "Мэри Бет Смит-Джонс" запись выглядит следующим образом:

firstName: «Мэри Бет»

lastName: «Смит-Джонс»

searchTerms: [ «мэри», «Бэт »,„кузнец“,„Джоунс“]

ближайший я могу получить, чтобы использовать whereKey:EqualTo который будет фактически возвращать матчи при запуске против массива:

let query = Person.query() 
    query?.whereKey(“searchTerms”, equalTo: “beth”) 
    query?.findObjectsInBackgroundWithBlock({ (places, error) -> Void in 
     //Mary Beth is retuned successfully 
    }) 

Однако это касается только полного равенства строк; query?.whereKey(“searchTerms”, equalTo: “bet”) не возвращается запись, о которой идет речь.

Я полагаю, я мог бы взорваться имена и хранить все возможные последовательные компоненты, как поисковые термины (b, e, t, h, be, et, th, bet, etc, beth и т.д.), но это далеко не масштабируется.

Любые предложения по извлечению этих записей из Parse? При необходимости я могу изменить свой подход.

ответ

0

Вы попробовали whereKey:hasPrefix:? Я не уверен, что это можно использовать для значений массива.

https://parse.com/docs/ios/guide#queries-queries-on-string-values

+0

у меня есть - он может быть использован только на струнах. Спасибо хоть. –

+0

И ваши ценности ...? – Moonwalkr

+0

'hasPrefix' может применяться только к столбцу строки. Моя колонка представляет собой ** массив ** строк. –

Смежные вопросы