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

MongoDB में रेगेक्स से विशिष्ट कैरेक्टर को कैसे इग्नोर करें?

MongoDB में रेगुलर एक्सप्रेशन से विशिष्ट कैरेक्टर वाले डॉक्यूमेंट्स एक्सक्लूड करना

MongoDB में किसी विशिष्ट कैरेक्टर (जैसे #) को न रखने वाले डॉक्यूमेंट्स खोजने के लिए रेगुलर एक्सप्रेशन के साथ $not ऑपरेटर या नेगेटेड कैरेक्टर क्लास का उपयोग करें।

उदाहरण: कलेक्शन और डॉक्यूमेंट्स बनाना

> db.regexDemo.insertOne({"CustomerId":"Customer#1234","CustomerName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc7428f8f9e6ff3eb0ce436") }
> db.regexDemo.insertOne({"CustomerId":"Customer5678","CustomerName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc7429e8f9e6ff3eb0ce437") }
> db.regexDemo.insertOne({"CustomerId":"Customer#777","CustomerName":"Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc742ae8f9e6ff3eb0ce438") }
> db.regexDemo.insertOne({"CustomerId":"Customer777","CustomerName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cc742bc8f9e6ff3eb0ce439") }

सभी डॉक्यूमेंट्स देखना

> db.regexDemo.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cc7428f8f9e6ff3eb0ce436"), "CustomerId" : "Customer#1234", "CustomerName" : "Chris" }
{ "_id" : ObjectId("5cc7429e8f9e6ff3eb0ce437"), "CustomerId" : "Customer5678", "CustomerName" : "Robert" }
{ "_id" : ObjectId("5cc742ae8f9e6ff3eb0ce438"), "CustomerId" : "Customer#777", "CustomerName" : "Carol" }
{ "_id" : ObjectId("5cc742bc8f9e6ff3eb0ce439"), "CustomerId" : "Customer777", "CustomerName" : "David" }

केस 1: नेगेटेड कैरेक्टर क्लास (^) का उपयोग

> db.regexDemo.find({CustomerId: /^[^#]*$/}).pretty();

आउटपुट:

{ "_id" : ObjectId("5cc7429e8f9e6ff3eb0ce437"), "CustomerId" : "Customer5678", "CustomerName" : "Robert" }
{ "_id" : ObjectId("5cc742bc8f9e6ff3eb0ce439"), "CustomerId" : "Customer777", "CustomerName" : "David" }

केस 2: $not ऑपरेटर का उपयोग

> db.regexDemo.find({CustomerId: {$not: /#/}}).pretty();

आउटपुट:

{ "_id" : ObjectId("5cc7429e8f9e6ff3eb0ce437"), "CustomerId" : "Customer5678", "CustomerName" : "Robert" }
{ "_id" : ObjectId("5cc742bc8f9e6ff3eb0ce439"), "CustomerId" : "Customer777", "CustomerName" : "David" }

पैटर्न समझ:

  • /^[^#]*$/ - स्ट्रिंग की शुरुआत से अंत तक कोई # न हो
  • {$not: /#/} - # न रखने वाले डॉक्यूमेंट्स
  • दोनों समान परिणाम देते हैं, पहला अधिक स्पष्ट है
  1. - MongoDB findOne() में रेगुलर एक्सप्रेशन का उपयोग

    findOne() संग्रह पर निर्दिष्ट क्वेरी मानदंड को संतुष्ट करने वाला एक दस्तावेज़ लौटाता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo655.insertOne({subject:MySQL}); { acknowledged : true, insertedId : ObjectId(5ea050254deddd72997713cc) } > db.demo655.insertOne({subject:MongoDB}); { acknow

  1. - MongoDB $in में रेगुलर एक्सप्रेशन कैसे सेट करें?

    आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo675.insertOne({ ListOfNames:[John,Chris,David]}); { acknowledged : true, insertedId : ObjectId(5ea3f5b404263e90dac943ef) } > db.demo675.insertOne({ ListOfNames:[Bob,Johnson,Sam]}); { acknowledged : true, insertedId : ObjectId(5ea3f5c8042

  1. - MongoDB दस्तावेज़ों में नल वैल्यूज़ को अनदेखा करना

    ऐरे में null वैल्यूज़ को बाहर करने के लिए $ne: null के साथ $match का उपयोग करें। डेमो डेटा db.demo722.insertOne({ id:101, details: [ { Name: }, { Name: David }, { Name:null }, { Name:Carol } ] }); क्वेरी db.demo722.aggregate([ {$unwind: $details},