MongoDB में सरणी तत्वों को सीमित करना: $slice का उपयोग
MongoDB सब-कलेक्शन या नेस्टेड सरणियों पर सीधे capped विकल्प का समर्थन नहीं करता। capped संग्रह स्तर पर काम करता है। हालांकि, आप एग्रीगेशन में $slice ऑपरेटर का उपयोग करके सरणी से केवल पहले N तत्व प्राप्त कर सकते हैं।
नमूना डेटा
> db.demo319.insertOne({"Scores": [100, 345, 980, 890]});
{ "acknowledged": true, "insertedId": ObjectId("5e50ecf6f8647eb59e562064") }
> db.demo319.insertOne({"Scores": [903, 10004, 84575, 844]});
{ "acknowledged": true, "insertedId": ObjectId("5e50ed01f8647eb59e562065") }
$slice के साथ एग्रीगेशन
प्रत्येक डॉक्यूमेंट से केवल पहले 2 स्कोर प्राप्त करने के लिए:
> db.demo319.aggregate([
{ $project: { TwoScores: { $slice: ["$Scores", 2] } } }
]);
परिणाम
{ "_id": ObjectId("5e50ecf6f8647eb59e562064"), "TwoScores": [ 100, 345 ] }
{ "_id": ObjectId("5e50ed01f8647eb59e562065"), "TwoScores": [ 903, 10004 ] }
$slice: ["$Scores", 2] सिंटैक्स का अर्थ है: $Scores सरणी से शुरुआत से 2 तत्व लें। आप नकारात्मक मान का उपयोग करके अंत से तत्व ले सकते हैं (उदाहरण: -2 अंतिम 2 तत्व देगा)।