2013-10-08 7 views
6

में क्वेरी "की तरह" उदाहरण के लिए, यदि मेरे डेटाबेस है:कैसे बनाने के लिए एक Parse.com

{ 
    people: name: [{"first":"Billy", "last":"smith"}] 
}, 
{ 
    people: name: [{"first":"bob", "last":"smith"}] 
}, 
{ 
    people: name: [{"first":"thor", "last":"smith"}] 
}, 
{ 
    people: name: [{"first":"hobo", "last":"smith"}] 
} 

मैं के प्रभाव से कुछ करना चाहते हैं: query.like("b") और इसे वापस है पहले, दूसरे और चौथे दस्तावेज़

क्या जावास्क्रिप्ट एपीआई में ऐसा कुछ है?

+0

संबंधित: https://www.parse.com/questions/are-like-or-regex-queries-possible-via-the-rest-api –

+0

तो जावास्क्रिप्ट क्वेरी.स्टार्ट्सथ() फ़ंक्शन केवल प्राप्त हो गया होगा "बिली" और "बॉब"। नहीं "होबो"। तो उस संबंध में इसकी कमी है। – bzupnick

उत्तर

8

contains(key, substring) विधि वह है जिसे आप चाहते हैं, लेकिन ध्यान दें कि यह केवल दूसरे और चौथे दस्तावेज़ों से मेल खाता है।

कारण यह है कि खोज केस-संवेदी हैं। एक आम रणनीति एक और क्षेत्र before save, उदा .:

Parse.Cloud.beforeSave("people", function(request, response) { 
    request.object.set(
     "search_name", 
     request.object.get("first").toLowerCase() 
      + " " 
      + request.object.get("last").toLowerCase() 
    ); 
    response.success(); 
}); 

को खोजने योग्य सामग्री लिखने के लिए अब आप query.contains("search_name", searchString.toLowerCase()) उपयोग कर सकते हैं उन सब को खोजने के लिए एक बादल संहिता हैंडलर जोड़ने के लिए है।

यदि आप केवल प्रथम नाम पर खोज करने में सक्षम होना चाहते हैं और अंतिम नाम नहीं चाहते हैं, तो या तो अपनी जरूरतों के आधार पर उपरोक्त संशोधित करें (या "search_first")।

+0

क्या मैं दस्तावेजों में, मामलों को खो दूंगा? – bzupnick

+1

आप अपना मूल "पहला" और "अंतिम" फ़ील्ड रखते हैं, और एक अतिरिक्त "search_name" फ़ील्ड जोड़ें जिसमें कम मूल्य में परिवर्तित उन मानों की एक प्रति है। –

संबंधित मुद्दे