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

MongoDB क्वेरी में NULL और UNDEFINED मानों को कैसे अनदेखा करें?

MongoDB में null या undefined मान वाले फील्ड वाले दस्तावेज़ों को बाहर करने के लिए, $ne (नॉट इक्वल) ऑपरेटर का उपयोग करें: { field: { $ne: null } }। यह null और अनुपस्थित फील्ड दोनों को फ़िल्टर करता है (लेकिन ध्यान दें: undefined BSON में संग्रहीत नहीं होता; यह जावास्क्रिप्ट में null बन जाता है)।

उदाहरण: मिश्रित मान वाले दस्तावेज़

> db.demo35.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175e42cfb11e5c34d898d0") }
> db.demo35.insertOne({"Name":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175e46cfb11e5c34d898d1") }
> db.demo35.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175e4bcfb11e5c34d898d2") }
> db.demo35.insertOne({"Name":undefined});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175e54cfb11e5c34d898d3") }

दस्तावेज़ देखना

> db.demo35.find();

आउटपुट: "Chris", null, "Bob", undefined (null के रूप में संग्रहीत) वाले दस्तावेज़।

NULL/UNDEFINED को बाहर करने के लिए क्वेरी

> db.demo35.find({"Name": {$ne: null}});

आउटपुट:

{ "_id" : ObjectId("5e175e42cfb11e5c34d898d0"), "Name" : "Chris" }
{ "_id" : ObjectId("5e175e4bcfb11e5c34d898d2"), "Name" : "Bob" }

महत्वपूर्ण व्यवहार

  • { field: { $ne: null } } उन दस्तावेज़ों से मेल खाता है जहां फील्ड मौजूद है और null नहीं है।
  • यह उन दस्तावेज़ों को भी बाहर करता है जहां फील्ड अनुपस्थित है (क्योंकि अनुपस्थित फील्ड क्वेरी उद्देश्यों के लिए null के बराबर माना जाता है)।
  • केवल अनुपस्थित फील्ड वाले दस्तावेज़ों को शामिल करने के लिए (लेकिन null को बाहर करने के लिए), उपयोग करें: { field: { $exists: true, $ne: null } }।
  • undefined BSON प्रकार नहीं है; शेल के माध्यम से डाला गया यह null बन जाता है।

अतिरिक्त: $exists के साथ स्पष्ट जांच

> db.demo35.find({ "Name": { $exists: true, $ne: null } });
  1. - MySQL में NULL मानों के अनुसार ऑर्डर करने की क्वेरी

    उदाहरण टेबल बनाएं: mysql> create table DemoTable707 ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> StudentFirstName varchar(100), -> StudentMarks int -> ); Query OK, 0 rows affected (0.59 sec) रिकॉर्ड डालें (कुछ NULL नाम के साथ): mysql> insert into Demo

  1. - MySQL में अलग-अलग टेबल से NULL मान अनदेखा करके NOT NULL रिकॉर्ड गिनना

    कई टेबल से NULL को छोड़कर गिनती COUNT(column) फ़ंक्शन स्वचालित रूप से NULL मानों को अनदेखा करता है। सबक्वेरी का उपयोग करके कई टेबल की गिनती एक साथ प्राप्त की जा सकती है। पहली टेबल INSERT INTO DemoTable1 VALUES(1), (NULL), (2), (3); दूसरी टेबल INSERT INTO DemoTable2 VALUES(10), (NULL), (NULL);

  1. - MySQL में IS NOT NULL का उपयोग करके NULL मानों को अनदेखा करना और बाकी मान प्रदर्शित करना

    MySQL में IS NOT NULL के साथ गैर-NULL मान फ़िल्टर करना क्वेरी परिणामों से NULL मानों को बाहर करने के लिए, IS NOT NULL ऑपरेटर का उपयोग करें। यह != NULL या <> NULL से अलग है, जो हमेशा UNKNOWN (गलत) लौटाते हैं। उदाहरण: वैध स्कोर वाले छात्र ढूंढना SELECT * FROM DemoTable1458; +--------------+---------