2015-09-23 3 views
1

Выполнение запроса на Parse db с строками в 600 тыс. Строк. Объект, который я хочу, есть, но он ничего не возвращает. Все работало несколько недель, а затем беспорядочно остановилось. Есть идеи? Вот запрос:Parse-запрос, не возвращающий результатов

// make query on parse database to find code the person entered 
        let query: PFQuery = PFQuery(className: "code") 
        query.whereKey("code", containsString: self.codeInput.text!.uppercaseString) 
        query.findObjectsInBackgroundWithBlock {(objects: [AnyObject]?, error: NSError?) -> Void in 

        // store results 
        let results: NSArray = (array: objects!) 

        // Log the error if there is one 
        if (error != nil) { 
         self.wrongCodeAnimation() 
         print("error " + error!.localizedDescription) 
        } 

         // if there aren't any results, do wrong code animation 
        else if(results.count == 0){ 
         print("nothing") 
         print(results) 
         self.wrongCodeAnimation() 
        } 

         // If no error, get array of results and validate the code, get the actual code for that object, and the valid state so we can pass them into the validate function 
        else { 
         let object: PFObject = results.objectAtIndex(0) as! PFObject 
         let code: String = object.objectForKey("code") as! String 
         let codeValid: Bool = object.objectForKey("valid") as! Bool 
         print(codeValid) 
         print(code) 
         self.validateCode(code, codeValid: codeValid, codeObject: object) 
        } 

       } 
+0

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

+0

@virendrao. Он существует в браузере данных , и все коды в верхнем регистре. Я просто конвертирую в верхний регистр, если человек случайно добавил строчный символ. –

+0

Есть ли какое-либо ограничение на количество запросов для разбора, достигнутых за месяц? – virendrao

ответ

0

Таким образом, очевидно изменение

query.whereKey("code", containsString: self.codeInput.text!.uppercaseString) 

в

query.whereKey("code", equalTo: self.codeInput.text!.uppercaseString) 

делает трюк. Кто-нибудь знает, почему это будет иметь какой-то эффект?

+0

Единственная проблема с containsString заключается в том, что для большого набора данных это медленный процесс. Возможно, поэтому он возвращает пустой результат (потому что он превышает лимит задержки?) –

+0

Интересно. Спасибо за разъяснения. По-прежнему странно считать, что объект (будь то строка или нет) все тот же тип. –

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