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

MongoDB में सरणी के सभी तत्वों का विशिष्ट मान से मिलान कैसे करें?

MongoDB में $elemMatch और $not के साथ सरणी तत्वों की सटीक मिलान

जब आपको उन डॉक्यूमेंट्स को ढूंढना हो जहां सरणी के सभी तत्व एक विशिष्ट मान से मेल खाते हों, तो आप $not के साथ $elemMatch का संयोजन उपयोग कर सकते हैं। तर्क: "ऐसा कोई तत्व नहीं मौजूद है जो दिए गए मान से अलग हो"।

नमूना डेटा

> db.demo15.insertOne({"Details": [{"Score": 56}, {"Score": 78}]});
{ "acknowledged": true, "insertedId": ObjectId("5e0f7806d7df943a7cec4fab") }
> db.demo15.insertOne({"Details": [{"Score": 86}, {"Score": 86}]});
{ "acknowledged": true, "insertedId": ObjectId("5e0f7817d7df943a7cec4fac") }
> db.demo15.insertOne({"Details": [{"Score": 97}, {"Score": 85}]});
{ "acknowledged": true, "insertedId": ObjectId("5e0f7823d7df943a7cec4fad") }

क्वेरी: जहां सरणी के सभी Score 86 हों

हम $exists के साथ सुनिश्चित करते हैं कि फ़ील्ड मौजूद है, फिर $not + $elemMatch का उपयोग करके उन डॉक्यूमेंट्स को बाहर करते हैं जहां कोई Score 86 से अलग हो।

> db.demo15.find({
    "Details.Score": { $exists: true },
    "Details": {
        $not: {
            $elemMatch: {
                "Score": { $ne: 86 }
            }
        }
    }
});

परिणाम

{ "_id": ObjectId("5e0f7817d7df943a7cec4fac"), "Details": [ { "Score": 86 }, { "Score": 86 } ] }

केवल दूसरा डॉक्यूमेंट वापस किया गया क्योंकि इसकी सरणी में सभी तत्वों का Score 86 है। पहला डॉक्यूमेंट (56, 78) और तीसरा (97, 85) बाहर हो गए क्योंकि उनमें कम से कम एक तत्व 86 से अलग है।

  1. - MongoDB दस्तावेज़ों में विशिष्ट फ़ील्ड के ऐरे एलिमेंट्स काउंट करना

    किसी फ़ील्ड में ऐरे एलिमेंट्स की संख्या गिनने के लिए $size ऑपरेटर का उपयोग करें। डेमो डेटा > db.demo723.insertOne({Subject:[MySQL,MongoDB]}); > db.demo723.insertOne({Subject:[C]}); > db.demo723.insertOne({Subject:[C++,Java,Python]}); क्वेरी db.demo723.aggregate([ { $project: { count:

  1. - MongoDB में सरणी क्वेरी करके विशिष्ट मान प्राप्त करें

    सरणी से विशिष्ट मान प्राप्त करने के लिए aggregate() के साथ $project का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo761.insertOne( { details: [ { student: { FullName: Chris Brown } } ] } ); { acknowledged : true, insertedId : ObjectId(5eb034d15637cd592b2a4af1) } > db.demo761.insertOne( { de

  1. - पायथन में k ढूंढना जहां k तत्वों का मान कम से कम k हो

    मान लीजिए हमारे पास nums नामक संख्याओं की एक लिस्ट है, जिसमें केवल नॉन-नेगेटिव संख्याएं हैं। यदि nums में ठीक k संख्या में तत्व हैं जो k से बड़े या बराबर हैं, तो मान k ढूंढें। यदि हम ऐसा नहीं ढूंढ सकते, तो -1 लौटाएं। उदाहरण के लिए, यदि इनपुट है nums = [6, 4, 0, 8, 2, 9], तो आउटपुट होगा 4, क्योंकि