Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में लंबाई मानदंड (Length Criteria) के साथ क्वेरी कैसे करें?


रेगेक्स ($regex) का उपयोग करके स्ट्रिंग लंबाई फ़िल्टर करना

MongoDB में स्ट्रिंग लंबाई ऑपरेटर नहीं है, लेकिन रेगेक्स ^.{min,max}$ का उपयोग करके लंबाई सीमा के आधार पर फ़िल्टर कर सकते हैं।

सिंटैक्स

db.yourCollectionName.find({ 'yourFieldName': { $regex: /^.{yourLengthValue1,yourLengthValue2}$/ } });

उदाहरण: नमूना डेटा

> db.queryLengthDemo.insertOne({"StudentFullName":"John Smith"}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01ae353decbc2fc927c0") }
> db.queryLengthDemo.insertOne({"StudentFullName":"John Doe"}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01b4353decbc2fc927c1") }
> db.queryLengthDemo.insertOne({"StudentFullName":"David Miller"}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01c2353decbc2fc927c2") }
> db.queryLengthDemo.insertOne({"StudentFullName":"Robert Taylor"}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01e2353decbc2fc927c3") }
> db.queryLengthDemo.insertOne({"StudentFullName":"Chris Williams"}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a01f1353decbc2fc927c4") }

लंबाई 9 से 12 के बीच वाले नाम खोजना

> db.queryLengthDemo.find({ StudentFullName: { $regex: /^.{9,12}$/ } }).pretty();

आउटपुट:


रेगेक्स व्याख्या:

  • ^ स्ट्रिंग की शुरुआत।
  • .{9,12} किसी भी वर्ण के 9 से 12 घटनाएं।
  • $ स्ट्रिंग का अंत।

प्रदर्शन चेतावनी: लीडिंग एंकर (^) के साथ रेगेक्स इंडेक्स का उपयोग कर सकता है, लेकिन ट्रेलिंग $ और लंबाई क्वांटिफायर बड़े संग्रह पर धीमे हो सकते हैं। बेहतर प्रदर्शन के लिए, लंबाई को अलग फ़ील्ड में स्टोर करें और उस पर इंडेक्स बनाएं।

  1. - MongoDB में $filter का उपयोग करके सबडॉक्यूमेंट को मानदंड के आधार पर ढूंढना और वापस करना

    MongoDB एग्रीगेशन में सबडॉक्यूमेंट फ़िल्टरिंग $filter के साथ $addFields का उपयोग करके सरणी से केवल उन सबडॉक्यूमेंट्स को रखें जो विशिष्ट मानदंड (उदाहरण: isMarried: true) पूरे करते हैं। नमूना डेटा > db.demo345.insertOne({ UserName: Robert, UserDetails: [ {isMarried: false, CountryN

  1. - MongoDB में LIMIT के साथ क्वेरी करना

    MongoDB में limit() मेथड का उपयोग करके परिणाम सीमित करना MongoDB में क्वेरी परिणामों की संख्या सीमित करने के लिए limit() मेथड का उपयोग करें। यह पेजिनेशन और प्रदर्शन के लिए महत्वपूर्ण है। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo58.insertOne({Name:David}); { acknowledged : true, insertedId : Ob

  1. - MongoDB में केस-इनसेंसिटिव खोज

    केस-इनसेंसिटिव खोज के लिए, find() मेथड में regex का उपयोग करें। सिंटैक्स निम्न है: db.demo572.find({yourFieldName : { $regex:/^yourValue$/i}}); उपरोक्त सिंटैक्स को समझने के लिए, आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo572.insertOne({CountryName:US}); { acknowledged : true, insertedI