MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

FindOneBy Symfony रिपॉजिटरी में पैरामीटर का मान पास नहीं कर सकता

आपके पिछले कोड उदाहरण में, $user . का प्रकार क्या है? चर? मुझे लगता है कि यह एक स्ट्रिंग हो सकता है यदि यह रूटिंग पैरामीटर है और यूआरआई से आ रहा है। आप उपयोग कर सकते हैं var_dump() एक शॉट में प्रकार और मूल्य प्राप्त करने के लिए।

पिछली टिप्पणी के आधार पर, आपने कहा था कि स्क्रिप्ट दस्तावेज़ में निम्नलिखित फ़ील्ड थे:

  • _id
  • नाम (स्ट्रिंग)
  • विवरण (स्ट्रिंग)
  • सूचकांक (पूर्णांक)
  • user_id (पूर्णांक)

अगर index आपके MongoDB दस्तावेज़ में फ़ील्ड एक पूर्णांक है, आपको क्वेरी में एक पूर्णांक का उपयोग करने की आवश्यकता होगी। उदाहरण के लिए, findOneByIndex('1') पूर्णांक वाले दस्तावेज़ से मेल नहीं खाएगा 1 इसके क्षेत्र में। यहां सबसे अच्छा अभ्यास है कास्ट करना क्वेरी करने से पहले आपके मान उपयुक्त प्रकार के लिए। जादू DocumentRepository विधियों पर भरोसा करना बंद करना और अपने स्वयं के findBy को स्पष्ट रूप से परिभाषित करना भी सबसे अच्छा हो सकता है तरीके, जो आंतरिक रूप से कास्टिंग करते हैं। फिर, आपका नियंत्रक एक रूटिंग या अनुरोध पैरामीटर से सीधे एक संख्यात्मक स्ट्रिंग पास कर सकता है और पूर्णांक कास्ट करने के बारे में चिंता करने की आवश्यकता नहीं है।

साथ ही, अपने मूल कोड उदाहरण पर टिप्पणी करने के लिए:

$script = $repository->findOneByIndex($user);

यह रूटिंग पैटर्न platform/designing/users/{user}/showuser . के लिए था . आपने कहा कि यह परिणाम खोजने में विफल रहा। मुझे लगता है कि $user आपके नियंत्रक के लिए तर्क एक उपयोगकर्ता आईडी है। अगर ऐसा है, तो आप index . पर क्वेरी क्यों कर रहे थे? user_id . के बजाय फ़ील्ड ?



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nodejs ड्राइवरों द्वारा कौन से एकत्रीकरण कर्सर विधियों का समर्थन किया जाता है?

  2. उत्पादन में MongoDB और Mongoid

  3. MongoDB RAM उपयोग सीमित करें

  4. मुझे कैसे पता चलेगा कि समय सीमा समाप्त विशेषता वाले दस्तावेज़ को हटा दिया गया है?

  5. PHP का उपयोग करके MongoDB में डेटा डालें