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

MongoDB क्वेरी: मैप रिड्यूस कॉन्सेप्ट का उपयोग करके रैंडम वैल्यू प्राप्त करना

रैंडम वैल्यू के लिए मैप रिड्यूस के साथ mapReduce() कॉन्सेप्ट और Math.random() का उपयोग करें।

नमूना डेटा बनाना (मान 10 से 80)

> db.demo651.insertOne({Value:10});
> db.demo651.insertOne({Value:20});
> db.demo651.insertOne({Value:30});
> db.demo651.insertOne({Value:40});
> db.demo651.insertOne({Value:50});
> db.demo651.insertOne({Value:60});
> db.demo651.insertOne({Value:70});
> db.demo651.insertOne({Value:80});

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

> db.demo651.find();
{ "Value" : 10 }, { "Value" : 20 }, { "Value" : 30 }, { "Value" : 40 }, { "Value" : 50 }, { "Value" : 60 }, { "Value" : 70 }, { "Value" : 80 }

रैंडम सैंपलिंग के लिए MapReduce क्वेरी (10% संभावना)

> map = function() {
  if (Math.random() < 0.1) {
    emit(this._id, this);
  }
}
> reduce = function(key, values) { return values; }
> db.demo651.mapReduce( map, reduce, { out: 'demo_651' } );
> db.demo_651.find();

परिणाम (रैंडम - उदाहरण में 60 मिला):

{ "_id" : ObjectId("..."), "value" : { "_id" : ObjectId("..."), "Value" : 60 } }

व्याख्या: मैप फंक्शन में Math.random() < 0.1 प्रत्येक दस्तावेज़ के लिए 10% संभावना से एमिट करता है। रिड्यूस फंक्शन केवल वैल्यू लौटाता है। आउटपुट नई कलेक्शन demo_651 में जाता है। ध्यान दें: परिणाम रैंडम है, हर बार अलग हो सकता है।

  1. - MongoDB में NumberInt() का उपयोग करके 32-बिट इंटीजर फ़ील्ड द्वारा दस्तावेज़ ढूंढना

    MongoDB में NumberInt(): 32-बिट इंटीजर स्पष्ट रूप से निर्दिष्ट करना MongoDB शेल में संख्यात्मक लिटरल डिफ़ॉल्ट रूप से 64-बिट फ्लोट (डबल) होते हैं। NumberInt() कंस्ट्रक्टर 32-बिट हस्ताक्षरित इंटीजर बनाने के लिए उपयोग किया जाता है, जो तुलना और इंडेक्स मिलान के लिए महत्वपूर्ण है जब संग्रहीत मान 32-बिट इ

  1. - MongoDB में सिंपल क्वेरी का उपयोग करके दस्तावेज़ कैसे फ़िल्टर करें?

    दस्तावेज़ फ़िल्टर करने के लिए $match का उपयोग करें। $match केवल उन दस्तावेज़ों को पास करता है जो निर्दिष्ट शर्त से मेल खाते हैं, अगले पाइपलाइन स्टेज के लिए। नमूना डेटा बनाना db.demo629.insertOne( { Subject: [MySQL, MongoDB], details: [ { Name:Chris, Marks:78 }, { Name:David, Marks:89 } ] } );

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

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