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अलग ऑपरेटर है (सरणी अभिव्यक्ति के लिए)
उपयोग: पेजिनेशन, पूर्वावलोकन, बड़े सरणी से नमूना लेने के लिए उपयोगी।