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

MongoDB में फील्ड में मानों की संख्या कैसे सीमित करें?

MongoDB में सरणी फील्ड से केवल पहले N तत्व प्राप्त करने के लिए प्रोजेक्शन में $slice ऑपरेटर का उपयोग करें।

उदाहरण

संख्याओं की सरणी वाला दस्तावेज़ बनाएं:

> db.numberOfValuesDemo.insertOne({"Values":[100,200,300,900,1000,98]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefb736ef71edecf6a1f6ab") }

दस्तावेज़ देखें:

> db.numberOfValuesDemo.find().pretty();
{ "_id" : ObjectId("5cefb736ef71edecf6a1f6ab"), "Values" : [ 100, 200, 300, 900, 1000, 98 ] }

पहले 2 मान प्राप्त करें

> db.numberOfValuesDemo.find({}, { "Values": { "$slice": 2 } });

आउटपुट:

{ "_id" : ObjectId("5cefb736ef71edecf6a1f6ab"), "Values" : [ 100, 200 ] }

$slice के विभिन्न उपयोग

सिंटैक्सपरिणामउदाहरण
{$slice: n}पहले n तत्व{$slice: 3} → [100, 200, 300]
{$slice: -n}अंतिम n तत्व{$slice: -2} → [1000, 98]
{$slice: [skip, limit]}skip के बाद limit तत्व{$slice: [2, 3]} → [300, 900, 1000]

महत्वपूर्ण:

  • $slice केवल प्रोजेक्शन (find का दूसरा आर्गुमेंट) में काम करता है
  • क्वेरी फिल्टर (पहला आर्गुमेंट) में उपयोग नहीं किया जा सकता
  • एग्रीगेशन में $slice अलग ऑपरेटर है (सरणी अभिव्यक्ति के लिए)

उपयोग: पेजिनेशन, पूर्वावलोकन, बड़े सरणी से नमूना लेने के लिए उपयोगी।

  1. - MongoDB में Collection में Documents की Number Limit करना

    Collection में documents की number limit करने के लिए capped: true set करें। Size भी वहीँ set करें। Capped Collection बनाना > db.createCollection( demo683, { capped: true, size: 5 ,max:4} ) { ok : 1 } > db.demo683.insertOne({Value:100}); { acknowledged : true, insertedId : ObjectId(5ea468afa7e

  1. - MongoDB में _id फील्ड छिपाएं

    आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo575.insertOne({id:101,Information:{Name:Chris,Age:21}}); { acknowledged : true, insertedId : ObjectId(5e916a55581e9acd78b427f7) } > db.demo575.insertOne({id:102,Information:{Name:David,Age:20}}); { acknowledged : true, insertedId : ObjectId

  1. - MongoDB क्वेरी: फील्ड के रिटर्निंग वैल्यूज को लिमिट करें

    इसके लिए $slice का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo594.insertOne({ id:1, details:[ {Name:Chris,Age:21}, {Name:Bob,Age:20}, {Name:David,Age:23}, {Name:Sam,Age:22} ] }); { acknowledged : true, insertedId : ObjectId(5e9334