MongoDB में रेगुलर एक्सप्रेशन से न्यूमेरिक स्ट्रिंग्स फिल्टर करना
MongoDB में केवल उन्हीं डॉक्यूमेंट्स को सिलेक्ट करने के लिए जिनमें एक फील्ड की वैल्यू पूरी तरह से न्यूमेरिक (संख्यात्मक) हो, आप रेगुलर एक्सप्रेशन /^\d+$/ का उपयोग कर सकते हैं।
उदाहरण: कलेक्शन और डॉक्यूमेंट्स बनाना
> db.selectOnlyNumericDemo.insertOne({"UserId":"User101"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdb711de8cc557214c0e16") }
> db.selectOnlyNumericDemo.insertOne({"UserId":"102"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdb716de8cc557214c0e17") }
> db.selectOnlyNumericDemo.insertOne({"UserId":"User103"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdb71dde8cc557214c0e18") }
> db.selectOnlyNumericDemo.insertOne({"UserId":"104"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdb725de8cc557214c0e19") }
सभी डॉक्यूमेंट्स देखना
> db.selectOnlyNumericDemo.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5cbdb711de8cc557214c0e16"), "UserId" : "User101" }
{ "_id" : ObjectId("5cbdb716de8cc557214c0e17"), "UserId" : "102" }
{ "_id" : ObjectId("5cbdb71dde8cc557214c0e18"), "UserId" : "User103" }
{ "_id" : ObjectId("5cbdb725de8cc557214c0e19"), "UserId" : "104" }
केवल न्यूमेरिक स्ट्रिंग्स वाली क्वेरी
> db.selectOnlyNumericDemo.find({'UserId': /^\d+$/});
आउटपुट:
{ "_id" : ObjectId("5cbdb716de8cc557214c0e17"), "UserId" : "102" }
{ "_id" : ObjectId("5cbdb725de8cc557214c0e19"), "UserId" : "104" }
रेगुलर एक्सप्रेशन समझ:
^- स्ट्रिंग की शुरुआत\d+- एक या अधिक अंक (0-9)$- स्ट्रिंग का अंत
यह पैटर्न सुनिश्चित करता है कि पूरी स्ट्रिंग केवल अंकों से बनी हो।