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

MongoDB में एक सरणी में मानों को दूसरी सरणी में खोजें और मिलान वाले इंडेक्स आउटपुट करें

MongoDB में एक सरणी में मानों को दूसरी सरणी में खोजने और मिलान वाले इंडेक्स (या -1 यदि नहीं मिला) वाली सरणी लौटाने के लिए, $map के साथ $indexOfArray का उपयोग करें।

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

> db.demo381.insertOne({"Values":[10,40,60,30,60]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5b59f72ae06a1609a00b15") }
> db.demo381.insertOne({"Values":[100,500,700,500,800]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5b59f72ae06a1609a00b16") }
> db.demo381.insertOne({"Values":[20,40,30,10,60]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5b59f72ae06a1609a00b17") }

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

> db.demo381.find();

आउटपुट: तीन दस्तावेज़ जिनमें अलग-अलग पूर्णांक सरणी हैं।

एग्रीगेशन: खोज मान [10, 40] के इंडेक्स ढूंढें

> db.demo381.aggregate([
    { $project: {
        Result: {
            $map: {
                input: [10, 40],
                in: { $indexOfArray: [ "$Values", "$$this" ] }
            }
        }
    }}
]);

परिणाम

{ "_id" : ObjectId("5e5b59f72ae06a1609a00b15"), "Result" : [ 0, 1 ] }
{ "_id" : ObjectId("5e5b59f72ae06a1609a00b16"), "Result" : [ -1, -1 ] }
{ "_id" : ObjectId("5e5b59f72ae06a1609a00b17"), "Result" : [ 3, 1 ] }

व्याख्या

  • $map खोज सरणी [10, 40] पर पुनरावृत्त करता है।
  • $indexOfArray प्रत्येक खोज मान के लिए Values सरणी में पहला इंडेक्स लौटाता है (नहीं मिला तो -1)।
  • परिणाम खोज सरणी के अनुरूप इंडेक्स की सरणी है।

वैकल्पिक: सभी घटनाएं (सभी इंडेक्स)

$indexOfArray केवल पहला इंडेक्स लौटाता है। सभी इंडेक्स के लिए, $filter के साथ $range/$map का उपयोग करें:

> db.demo381.aggregate([
    { $project: {
        Result: {
            $map: {
                input: [10, 40],
                in: {
                    $filter: {
                        input: { $range: [ 0, { $size: "$Values" } ] },
                        cond: { $eq: [ { $arrayElemAt: [ "$Values", "$$this" ] }, "$$this" ] }
                    }
                }
            }
        }
    }}
]);

यह अधिक जटिल है; एप्लिकेशन कोड में करने पर विचार करें।

  1. - MongoDB में ग्रुपिंग को ऑब्जेक्ट में प्रोजेक्ट करके केवल मार्क्स फील्ड प्रदर्शित करें

    आइए पहले एक दस्तावेज बनाते हैं: > var document= [ { SubjectName: MySQL, Marks: 78 }, { SubjectName: MongoDB, Marks: 89 }, { SubjectName: Java, Marks: 71 }, ]; दस्तावेज प्रदर्शित करने के लिए क्वेरी: > printjson(document); यह निम्न आउटपुट देगा: [ { SubjectName: MySQL, Marks: 78

  1. - MongoDB क्वेरी: फील्ड मानों में "@email" जैसे स्ट्रिंग की खोज करें

    MongoDB find() का उपयोग करके ईमेल स्ट्रिंग खोजें। आइए एक कलेक्शन बनाते हैं: > db.demo727.insertOne({UserId:John@email.com}); { acknowledged : true, insertedId : ObjectId(5eab375f43417811278f5898) } > db.demo727.insertOne({UserId:John@yahoo.com}); { acknowledged : true, insertedId : ObjectId(5

  1. - C# में CSV फ़ाइल पढ़कर मानों को ऐरे में कैसे स्टोर करें?

    एक CSV फ़ाइल एक कॉमा-सेपरेटेड फ़ाइल है, जिसका उपयोग डेटा को व्यवस्थित तरीके से स्टोर करने के लिए किया जाता है। यह आमतौर पर डेटा को टेबुलर फॉर्म में स्टोर करता है। अधिकांश व्यावसायिक संगठन अपने डेटा को CSV फ़ाइलों में स्टोर करते हैं। C# में, StreamReader क्लास का उपयोग फ़ाइलों से निपटने के लिए किया