MongoDB में फील्ड प्रोजेक्शन और सरणी स्लाइसिंग को एक साथ करने के लिए प्रोजेक्शन ऑब्जेक्ट में $slice ऑपरेटर का उपयोग करें।
उदाहरण
लंबी सरणी वाला दस्तावेज़ बनाएं:
> db.limitAndSliceProjectionDemo.insertOne(
{
"_id": 101,
"UserName": "Carol",
"UserAge": 26,
"UserMesssage": [
"Hi", "Hello", "Bye", "Awesome", "Good", "Bad", "Nice", "Good Night", "Good Morning"
]
}
);
{ "acknowledged" : true, "insertedId" : 101 }
दस्तावेज़ देखें:
> db.limitAndSliceProjectionDemo.find().pretty();
{ "_id" : 101, "UserName" : "Carol", "UserAge" : 26, "UserMesssage" : [ "Hi", "Hello", "Bye", "Awesome", "Good", "Bad", "Nice", "Good Night", "Good Morning" ] }
कुछ फील्ड छुपाएं और सरणी से 2 से 4 इंडेक्स तक स्लाइस करें
> db.limitAndSliceProjectionDemo.find(
{ "UserName": "Carol" },
{ "_id": 0, "UserName": 0, "UserAge": 0, "UserMesssage": { "$slice": [2, 4] } }
).pretty();
आउटपुट:
{ "UserMesssage" : [ "Bye", "Awesome", "Good", "Bad" ] }
व्याख्या:
{$slice: [skip, limit]}- skip तत्व छोड़कर limit तत्व लौटाता है[2, 4]का अर्थ: इंडेक्स 2 से शुरू करके 4 तत्व (इंडेक्स 2, 3, 4, 5)_id: 0, UserName: 0, UserAge: 0- ये फील्ड परिणाम से बाहर रखे गए
$slice के अन्य रूप
| सिंटैक्स | विवरण |
|---|---|
{$slice: n} | पहले n तत्व |
{$slice: -n} | अंतिम n तत्व |
{$slice: [skip, limit]} | skip के बाद limit तत्व |
यह बड़े सरणी फील्ड से केवल आवश्यक भाग प्राप्त करने के लिए उपयोगी है, जिससे नेटवर्क ट्रांसफर कम होता है।