2010-01-04 7 views
7

लाखों वस्तुओं के दस्तावेज़ों के संग्रह के लिए अद्वितीय टैग का ट्रैक रखने का सबसे अच्छा तरीका क्या है? टैगिंग करने का सामान्य तरीका multikeys अनुक्रमणित प्रतीत होता है। हालांकि, मुझे अक्सर सभी अनूठी कुंजी प्राप्त करने की आवश्यकता होगी। मेरे पास mongodb के नए "विशिष्ट" कमांड तक पहुंच नहीं है, या तो, क्योंकि मेरे ड्राइवर, erlmongo, इसे लागू करने के लिए प्रतीत नहीं होता है, फिर भी।मोंगोडीबी: सभी अद्वितीय टैगों की सूची प्राप्त करने का एक अच्छा तरीका क्या है?

उत्तर

10

भले ही आपका चालक अलग-अलग कार्यान्वित नहीं करता है, आप इसे स्वयं लागू कर सकते हैं। जावास्क्रिप्ट (क्षमा करें, मैं Erlang पता नहीं है, लेकिन यह काफी सीधे अनुवाद कर देना चाहिए) में कह सकते हैं:

result = db.$cmd.findOne({"distinct" : "collection_name", "key" : "tags"}) 

तो, वह यह है कि: यदि आप "$ cmd" के संग्रह पर एक findOne कर जो कुछ भी डेटाबेस आप ' फिर से उपयोग कर रहे हैं। इसे संग्रह का नाम और वह कुंजी जिसे आप अलग करना चाहते हैं उसे पास करें।

यदि आपको कभी भी कमांड की आवश्यकता होती है तो आपका ड्राइवर सहायक नहीं प्रदान करता है, तो आप डेटाबेस कमांड की कुछ पूरी सूची के लिए http://www.mongodb.org/display/DOCS/List+of+Database+Commands देख सकते हैं।

+0

ओह, हाँ। :) –

1

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मुझे एक ही समस्या थी और इसके लिए PHP में वास्तविक समाधान नहीं मिला।

http://snipplr.com/view/59334/list-of-keys-used-in-mongodb-collection/

+0

स्टैक ओवरफ़्लो में आपका स्वागत है! हालांकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, [यह बेहतर होगा] (http://meta.stackexchange.com/q/8259) यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें। – oers

1

जॉन, आप इसे उपयोगी विविधता, एक संग्रह स्कीमा विश्लेषण करने के लिए एक खुला स्रोत उपकरण का उपयोग करने के लिए हो सकता है::

तो मैं इस के साथ आया था https://github.com/jamescropcho/variety

शायद आप चला सकते हैं पृष्ठभूमि में प्रत्येक एन घंटे की विविधता, और नव निर्मित बनाई गई विविधता डेटाबेस को अनन्य कुंजी की एक सूची पुनर्प्राप्त करने के लिए क्वेरी करें जो किसी दिए गए स्ट्रिंग (यानी एक विशिष्ट अभिभावक के वंशज हैं) से शुरू होती है।

यदि आपके कोई प्रश्न हैं, या अतिरिक्त सलाह की आवश्यकता है तो मुझे बताएं।

शुभकामनाएं!