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

MongoDB में ऐरे में मान नहीं रखने वाले फ़ील्ड्स वाले डॉक्यूमेंट्स कैसे मैच करें

$nin ऑपरेटर से ऐरे में विशिष्ट मान न रखने वाले डॉक्यूमेंट्स ढूंढें

$nin (not in) ऑपरेटर उन डॉक्यूमेंट्स को चुनता है जहां ऐरे फ़ील्ड का कोई भी एलिमेंट निर्दिष्ट मानों में से किसी से मेल नहीं खाता।

उदाहरण: संग्रह बनाना

> db.demo180.insertOne({"Scores": ["80", "90", "110"]});
{ "acknowledged": true, "insertedId": ObjectId("5e3988a69e4f06af551997fb") }
> db.demo180.insertOne({"Scores": ["110", "70", "60"]});
{ "acknowledged": true, "insertedId": ObjectId("5e3988b79e4f06af551997fc") }
> db.demo180.insertOne({"Scores": ["40", "70", "1010"]});
{ "acknowledged": true, "insertedId": ObjectId("5e3988cc9e4f06af551997fd") }

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

> db.demo180.find();
{ "_id": ObjectId("5e3988a69e4f06af551997fb"), "Scores": ["80", "90", "110"] }
{ "_id": ObjectId("5e3988b79e4f06af551997fc"), "Scores": ["110", "70", "60"] }
{ "_id": ObjectId("5e3988cc9e4f06af551997fd"), "Scores": ["40", "70", "1010"] }

$nin से मैच करने की क्वेरी

जिन डॉक्यूमेंट्स के Scores ऐरे में "110" और "90" दोनों नहीं हैं:

> db.demo180.aggregate({
    "$match": {
        "Scores": { "$nin": ["110", "90"] }
    }
}).pretty();

आउटपुट:

{ "_id": ObjectId("5e3988cc9e4f06af551997fd"), "Scores": ["40", "70", "1010"] }

केवल तीसरा डॉक्यूमेंट मेल खाता है क्योंकि उसके ऐरे में न "110" है न "90"।

नोट: $nin ऐरे फ़ील्ड पर काम करता है; यदि फ़ील्ड ऐरे नहीं है तो यह उस फ़ील्ड की वैल्यू को सिंगल-एलिमेंट ऐरे मानता है।

  1. - MongoDB: ऐरे वैल्यूज के आधार पर दस्तावेजों को मैच करें जो विशिष्ट मान से अधिक हों

    आप $elemMatch का उपयोग कर सकते हैं। $elemMatch ऑपरेटर उन दस्तावेजों से मेल खाता है जिनमें एक ऐरे फील्ड होता है जिसमें कम से कम एक एलिमेंट होता है जो सभी निर्दिष्ट क्वेरी मानदंडों से मेल खाता है। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo701.insertOne({ListOfValues:[100,200,300]}); { a

  1. - MongoDB में एग्रीगेशन का उपयोग करके सभी मानों को मैच करें

    MongoDB में सभी मानों को मैच करने के लिए, एग्रीगेशन में $match के साथ $and का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo574.insertOne({ details1: { details2: { dueDate: new ISODate(2020-01-10), Name: Chris, UserInformation: {

  1. - MongoDB क्वेरी: ऐरे फील्ड वाले दस्तावेजों को मैच करें

    ऐरे फील्ड वाले दस्तावेजों को मैच करने के लिए, $elemMatch ऑपरेटर का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo592.insertOne({ id:101, details: [ { Name: Chris, Value: 200 }, { Name: David, Value: 800 } ] }); { acknowledged : true, insertedId : Ob