2011-07-14 10 views
10

वहाँ mongoexport का उपयोग करते समय एक उप दस्तावेज़ में केवल निर्दिष्ट क्षेत्रों को निर्यात करने के लिए एक रास्ता है में केवल विशिष्ट क्षेत्रों को निर्यात करने के? मोंगो डॉक्स का कहना है कि केवल फ़ील्ड 1, फ़ील्ड 2 आदि का उपयोग करें ... लेकिन यह केवल शीर्ष स्तर के फ़ील्ड के साथ काम करता है। मेरे पास मुख्य दस्तावेज़ के अंदर एक दस्तावेज़ है जिसमें फ़ील्ड भी हैं। क्या केवल उनको पाने का कोई तरीका है?कैसे उपयोग mongoexport एक उप दस्तावेज़

उदाहरण:

{ 
    "topField1": "topValue1", 
    "topField2": "topValue2", 
    "subDoc1: { 
        "subField1": "subValue1", 
        "subField2": "subValue2" 
       } 
} 

वहाँ कि मैं केवल क्षेत्र subField2 मिल निर्दिष्ट करने के लिए एक तरीका है?

मुझे नियमित मोंगो क्वेरी में पता है कि मैं "subDoc1.subField2" का उपयोग कर सकता हूं जो आसानी से {"$ oid": 122432432, {"subDoc1": {"subField2": "subValue2"}} लौटाएगा लेकिन यह ' टी mongoexport के साथ काम करने लगते हैं।

भी मैं json के रूप में निर्यात करना चाहते हैं।

उत्तर

13

त्रुटि आप किस तरह का dotnotation का उपयोग कर मिलता है? मैं MongoDB 1.8.2 चल रहा हूँ और मेरे लिए निम्नलिखित काम करता है:

mongoexport -d dbName -c collectionName -f subDoc1.subField2 --csv -o /path/to/file.csv 

सीएसवी इस

subDoc1.subField2 #header with field names 
"subValue2" #actual entry 
+1

मुझे नहीं लगता मैं एक त्रुटि हो रही थी है। मुझे लगता है कि समस्या यह थी कि यह अनावश्यक क्षेत्रों को वापस कर रहा था। लेकिन आप सही हैं अब यह काम करता है! मुझे लगता है कि मैं पहले mongo 1.6 चला रहा था। अब मैं मोंगो 2.0.1 चला रहा हूँ। धन्यवाद डेमी! – Khon

0

मामले में हम इस मामले में subdocument मूल्य .ie में सुनिश्चित नहीं हैं जैसा दिखता है: subField1 या subField2, लेकिन हमें जो भी चाहिए वह सब-संग्रह के पहले फ़ील्ड को निकालने के लिए है। क्या mongoexport इसे संभाल सकता है?

0

mongoexport --db db_name --collection COLLECTION_NAME --fields 'नहीं, नाम' --out collection_name.json

संबंधित मुद्दे