उपयोग मिल ->कृपया तल पर अद्यतन देखने, मैं मोंगो में एक ही मुद्दा शैलphp मोंगो केवल 4 मापदंड
मेरे मापदंड दोहराया है GET पैरामीटर के माध्यम से भेजी जा रही है और $ डेटा (में रखा जाता है एक assc सरणी के रूप में)। फिर यह अनुभाग से नीचे हो जाता है, जहां प्रत्येक खोज शब्द आंशिक सटीक मिलान नहीं होता है। उसके बाद हम रिक्त मानदंडों को हटाते हैं (अनसेट)।
कुल मिलाकर 15 फ़ील्ड संभवतः कम से कम 1 और अधिकतम 15 सेट किए जा सकते हैं।
foreach ($data as $k => $v) {
// Make them partial match
$data[$k] = new MongoRegex('/'.$v.'/i');
// Remove empty criteria
if (empty($v)) unset($data[$k]);
}
// Run the search
$cursor = $this->collection->find($data);
सब कुछ जब तक मिठाई काम करता है के रूप में पारित criterias 4 हैं या उससे कम की तरह:
Array (
[phone] => MongoRegex Object ([regex] => 433 [flags] => i)
[property_name] => MongoRegex Object ([regex] => west [flags] => i)
[city] => MongoRegex Object ([regex] => H [flags] => i)
[zip_postcode] => MongoRegex Object ([regex] => 9 [flags] => i)
)
यह रिटर्न 5 परिणाम नहीं।
लेकिन 4 वें के बाद जोड़ा गया कोई भी मानदंड अप्रभावी है।
Array (
[phone] => MongoRegex Object ([regex] => 433 [flags] => i)
[state_province] => MongoRegex Object ([regex] => Virginia [flags] => i)
[property_name] => MongoRegex Object ([regex] => west [flags] => i)
[city] => MongoRegex Object ([regex] => H [flags] => i)
[zip_postcode] => MongoRegex Object ([regex] => 9 [flags] => i)
)
2 वापसी, लेकिन अभी भी 5 वापस आती है और यह कोई फर्क नहीं पड़ता कि कितने मापदंड आइटम
जुड़ जाते हैं 5 वापस आ जाएगी चाहिए- अद्यतन -
तो मैं उस में की कोशिश की है शैल और मेरे आश्चर्य से यह भी काम नहीं करता है।
db.property_list.find({phone:/433/, property_name:/west/, city:/h/, zip_postcode:/9/}).count()
रिटर्न 5
अब जब मैं 2 5 वीं पैरामीटर यह परिणामों को सीमित करना चाहिए जोड़ने, लेकिन यह अप्रभावी है और अभी भी 5 के रूप में गिनती दिखाने !!!
db.property_list.find({phone:/433/, property_name:/west/, city:/h/, zip_postcode:/9/, state_province:/Virginia/}).count()
रिटर्न 5
प्रयोगों की एक बहुत कुछ के साथ, मुझे एहसास हुआ कि यह केवल पहले 4 मापदंड उठाया जा रहा है !! जैसे कि आखिरी उदाहरण में मैं 'state_province'
और 'city'
के लिए जगह स्विच करता हूं, यह 'शहर' मानदंड होगा जो अप्रभावी होगा क्योंकि यह 5 वां मानदंड होगा !!
- नई अद्यतन -
यह पता चला है कि अगर मैं 5 वीं मापदंड यह काम करेंगे पर सामान्य के बजाय मैच regex का उपयोग। क्या मैं मानता हूं कि मोंगो केवल 4 रेगेक्स मानदंडों के लिए ढूंढ सकता है? सही ढंग से रिटर्न तो यह होगा 1
db.property_list.find({phone:/433/, property_name:/west/, city:/h/, zip_postcode:/9/, state_province:Virginia}).count()
क्या ऐसा ही होता है यदि आपके पास अभी "state_province" है?क्या आप इसे मोंगो खोल पर दोहरा सकते हैं? – Derick
अरे डेरिक, आपके उत्तर के लिए धन्यवाद, मैंने इसे मोंगो खोल में भी कोशिश की है और मेरे आश्चर्य की बात अभी भी एक ही समस्या है ... मैं लगभग निश्चित हूं कि मोंगो रेगेक्स मानदंड को 4 तक सीमित नहीं कर रहा है? !! – Zoheir