2012-07-21 5 views
9

मान लीजिए कि मैं मोंगो में निम्न डेटा मॉडल हैं:आप मोंगो में एक सरणी उपखंड को कैसे सीमित करते हैं?

{ 
    _id: ..., 
    name: "...", 
    obj: {...}, 
    list: [ ... ], 
} 

अब मान लीजिए कि, मेरे list सरणी बहुत लंबा है, और मैं पूरे दस्तावेज़ हर बार हड़पने के लिए नहीं करना चाहती। इसलिए मैं obj और name प्राप्त करना चाहता हूं, लेकिन केवल list में अंतिम 5 तत्वों को पकड़ें। आप मोंगो के साथ ऐसा कैसे करते हैं? मैं pymongo का उपयोग कर रहा हूँ।

उत्तर

18

मुझे लगता है कि आप $slice ऑपरेटर की तलाश में हैं। डॉक्स here हैं।

db.coll.find({}, {obj:1, name: 1, list:{$slice: -5}}); // last 5 

ध्यान दें कि यह भी डिफ़ॉल्ट रूप से _id क्षेत्र वापस आ जाएगी:

वाक्य रचना आप देख रहे हैं कुछ इस तरह है। यदि आप _id_id:0obj:1 के सामने नहीं चाहते हैं। यह जेएस वाक्यविन्यास है, लेकिन पायथन वाक्यविन्यास बहुत करीब होगा।

+3

[docs.mongodb/$ स्लाइस] (http://docs.mongodb.org/manual/reference/operator/projection/slice/) – laggingreflex