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

मोंगोडब में दो क्षेत्रों के समवर्ती मान से मेल खाने वाले रिकॉर्ड का चयन करें

आप इसे केवल एकत्रीकरण ढांचे के साथ कर सकते हैं, नियमित खोज के साथ नहीं।

db.coll.aggregate({$project:{newField:{$concat:["$field1","$field2"]}}},
                  {$match:{newField:"value"}} 
);

ध्यान दें कि यह किसी भी अनुक्रमणिका का उपयोग करने में सक्षम नहीं होगा, क्योंकि MongoDB (अभी तक) में गणना किए गए मानों पर अनुक्रमणिका के लिए कोई समर्थन नहीं है।

यदि आपके पास field1 . पर एक अनुक्रमणिका है और आप जानते हैं कि आप कितने वर्णों की अपेक्षा करते हैं कि फ़ील्ड 1 value में योगदान देगा आप इस तरह से इस एकत्रीकरण के प्रदर्शन में सुधार कर सकते हैं:

db.coll.aggregate({$match:{field1:/^val/}},
                  {$project:{newField:{$concat:["$field1","$field2"]}}},
                  {$match:{newField:"value"}} 
);

जहां val "मान" स्ट्रिंग का पहला भाग है (आपको field1 के न्यूनतम संभव मान से अधिक वर्णों की तुलना नहीं करनी चाहिए हालांकि।

संपादित करें संस्करण 3.6 के अनुसार आप इसे $expr . का उपयोग करके खोज में कर सकते हैं अभिव्यक्ति:

db.coll.find({$expr:{$eq:["value", {$concat:["$field1", "$field2"]}]}})


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB diacriticInSensitive खोज अपेक्षित और इसके विपरीत सभी उच्चारण (विशेषक चिह्न वाले शब्द) पंक्तियों को नहीं दिखा रहा है

  2. 2022 के लिए MongoDB ट्यूटोरियल - जानें कि MongoDB क्या है?

  3. MongoDB में कस्टम ऑब्जेक्ट आईडी बनाना

  4. MongoDB mongorestore और रिकॉर्ड के साथ मौजूदा संग्रह

  5. उल्का सदस्यता संग्रह के क्रम को अद्यतन नहीं करता है