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

MongoDB में पहले n दस्तावेज़ों को छोड़कर क्वेरी करें

MongoDB में skip() और limit() का उपयोग करके पेजिनेशन

skip() विधि परिणाम सेट से पहले n दस्तावेज़ों को छोड़ देती है। limit() के साथ संयोजित करके पेजिनेशन लागू किया जा सकता है।

सैंपल डेटा बनाना

> db.demo246.insertOne({"StudentFirstName":"Chris","StudentLastName":"Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b0d71627c0c63e7dba65") }
> db.demo246.insertOne({"StudentFirstName":"John","StudentLastName":"Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b0e21627c0c63e7dba66") }
> db.demo246.insertOne({"StudentFirstName":"John","StudentLastName":"Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b0ea1627c0c63e7dba67") }
> db.demo246.insertOne({"StudentFirstName":"Carol","StudentLastName":"Taylor"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e46b0f91627c0c63e7dba68") }

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

> db.demo246.find();

आउटपुट:


पहले 2 दस्तावेज़ छोड़कर 1 दस्तावेज़ लेना

> db.demo246.find().skip(2).limit(1);

आउटपुट (तीसरा दस्तावेज़):


पेजिनेशन पैटर्न

// पेज 1 (पहले 10)
db.collection.find().skip(0).limit(10)

// पेज 2 (अगले 10)
db.collection.find().skip(10).limit(10)

// पेज n
db.collection.find().skip((n-1)*pageSize).limit(pageSize)

प्रदर्शन चेतावनी

  • skip() बड़े ऑफसेट्स के लिए धीमा होता है (छोड़े गए दस्तावेज़ों को स्कैन करना पड़ता है)
  • बड़े डेटासेट के लिए कर्सर-आधारित पेजिनेशन (रेंज क्वेरी) बेहतर है

बेहतर पेजिनेशन: रेंज क्वेरी (सीक मेथड)

// अंतिम देखे गए _id का उपयोग करके
db.collection.find({ _id: { $gt: lastSeenId } }).limit(10)

एग्रीगेशन में $skip और $limit

> db.demo246.aggregate([
    { $sort: { StudentFirstName: 1 } },
    { $skip: 2 },
    { $limit: 1 }
]);
  1. - MongoDB क्वेरी: ऐरे फील्ड वाले दस्तावेजों को मैच करें

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

  1. - MongoDB में एक क्वेरी से कई डॉक्यूमेंट्स कैसे अपडेट करें?

    एक क्वेरी से कई डॉक्यूमेंट्स अपडेट करने के लिए MongoDB में bulkWrite() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); { acknowledged : true, insertedId : ObjectId(5eb0309f5637cd592b2a4aee) } > db.demo760.insertOne({id:2,details:{Value1:

  1. - MySQL में पहले 10 परिणाम कैसे छोड़ें?

    LIMIT ... OFFSET सिंटैक्स MySQL में पहले N परिणाम छोड़कर (skip) बाद के परिणाम प्राप्त करने के लिए LIMIT के साथ OFFSET का उपयोग करें। सिंटैक्स SELECT * FROM yourTableName LIMIT row_count OFFSET offset_value; या संक्षिप्त रूप: SELECT * FROM yourTableName LIMIT offset_value, row_count; उदाहरण: पहले