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

MongoDB क्वेरी: ऐरे में एक ही वैल्यू कई बार खोजने वाली क्वेरी कौन सी है

$where और JavaScript फ़िल्टर से ऐरे में डुप्लिकेट वैल्यू वाले डॉक्यूमेंट्स ढूंढें

MongoDB में किसी ऐरे फ़ील्ड में एक ही वैल्यू एक से अधिक बार आने वाले डॉक्यूमेंट्स ढूंढने के लिए $where क्लॉज में JavaScript फ़ंक्शन का उपयोग करें।

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

> db.demo188.insertOne({
    "ListOfData": [{"Data": 100}, {"Data": 200}, {"Data": 100}]
});
{ "acknowledged": true, "insertedId": ObjectId("5e3ad1c203d395bdc21346bd") }
> db.demo188.insertOne({
    "ListOfData": [{"Data": 100}, {"Data": 200}, {"Data": 300}]
});
{ "acknowledged": true, "insertedId": ObjectId("5e3ad1c203d395bdc21346be") }

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

> db.demo188.find();
{ "_id": ObjectId("5e3ad1c203d395bdc21346bd"), "ListOfData": [{"Data": 100}, {"Data": 200}, {"Data": 100}] }
{ "_id": ObjectId("5e3ad1c203d395bdc21346be"), "ListOfData": [{"Data": 100}, {"Data": 200}, {"Data": 300}] }

ऐरे में डुप्लिकेट वैल्यू (100) ढूंढने की क्वेरी

> db.demo188.find({
    "$where": function() {
        return this.ListOfData.filter(function(d) {
            return d.Data == 100;
        }).length > 1;
    }
})

आउटपुट:

{ "_id": ObjectId("5e3ad1c203d395bdc21346bd"), "ListOfData": [{"Data": 100}, {"Data": 200}, {"Data": 100}] }

पहले डॉक्यूमेंट में 100 दो बार है, इसलिए वह मेल खाता है। दूसरे में 100 केवल एक बार है, इसलिए बाहर हो गया।

चेतावनी: $where धीमा है और इंडेक्स उपयोग नहीं करता। बड़े संग्रहों के लिए एग्रीगेशन में $unwind, $group, $match का उपयोग करें।

  1. MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें

    इसके लिए $not के साथ $in ऑपरेटर का उपयोग करें। आइए एक संग्रह बनाते हैं: [ { id: 101, subjectid: [ 102 ] }, { id: 102, subjectid: [ 102 ] } ] सभी दस्तावेज़ देखने के लिए: db.collection.find() आउटपुट: [ { _id: ObjectId(5a934e000102030405000000),

  1. - MongoDB में ऑब्जेक्ट्स की सरणी के अंदर कई मिलान कैसे खोजें?

    इसके लिए, $and के साथ $regex का उपयोग करें। $and एक या अधिक एक्सप्रेशन की सरणी पर लॉजिकल AND ऑपरेशन करता है और उन दस्तावेज़ों को चुनता है जो सरणी में सभी एक्सप्रेशन को संतुष्ट करते हैं। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo525.insertOne({details:[{Name:Chris,CountryName:US}]}); { ackn

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

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