में समूह का चयन करें मैं ऐसा कुछ करने की कोशिश कर रहा हूं जो मुझे लगता है कि यह काफी सरल है। मान लीजिए मेरे पास मोंगो में रिकॉर्ड की एक श्रृंखला है जिसमें एक सामान्य कुंजी है, और गुणों की चर संख्या है। मैं रिकॉर्ड्स में नाम से सभी विशेषताओं और समूह का चयन करना चाहता हूं। उदाहरण* मोंगो एग्रीगेशन
{ Name: George, x: 5, y: 3 }
{ Name: George, z: 9 }
{ Name: Rob, x: 12, y: 2 }
के लिए मैं एक सीएसवी कि इस तरह दिखता है निर्माण करने के लिए करना चाहते हैं:
Name X Y Z
George 5 3 9
Rob 12 2
DB.data.aggregate({ $group : { _id : "$Name" } })
की कोशिश की दुर्भाग्य से मैं रिकॉर्ड के रूप में सभी के नाम नहीं बल्कि के मिलन वापस मिल सभी संभावित गुण।
धन्यवाद, मैंने $ push का उपयोग करके एक ही चीज़ की है और ऐसा लगता है कि यह काम करता है। मेरा अनुवर्ती प्रश्न यह होगा कि क्या यहां से फ्लैट सीएसवी को डेटा निर्यात करने का सबसे अच्छा तरीका है, परिणाम सेट में आंतरिक सरणी को अनदेखा करना? –
मैं csv बनाने के लिए pymongo और पायथन का उपयोग कर रहा हूँ। एक शेष मुद्दा यह है कि जब मैं $ addToSet का उपयोग करता हूं, तो मैं प्रत्येक कुंजी के लिए परिणामों के सरणी बना रहा हूं, भले ही प्रत्येक कुंजी मान जोड़ी के लिए केवल एक अलग मूल्य हो। यह तब सीएसवी को बहुत बोझिल करने की प्रक्रिया बनाता है। क्या महत्वपूर्ण मूल्यों के सरणी बनाने से बचने का कोई तरीका है? –
@RogerSanchez: '$ addToSet' या' $ push' सरणी मान वापस कर देगा, इसलिए आपको अपने CSV निर्यात में कुछ मालिश करना होगा या एक अलग समग्र फ़ंक्शन पर विचार करना होगा। उदाहरण के लिए, यदि सभी मान संख्यात्मक हैं और आपके पास प्रति फ़ील्ड केवल एक अद्वितीय मूल्य है तो आप ['$ max'] (http://docs.mongodb.org/manual/reference/aggregation/ का उपयोग करके दूर हो सकते हैं। #_S_max) इसके बजाए। यदि परिणाम मान * कभी-कभी * सरणी होते हैं, तो आपको अपने कोड में झुकाव करना होगा। यहां एक उदाहरण पायथन गिस्ट है जो मदद कर सकता है: [सीएसवी में उद्धृत तारों के लिए agg arrays flattening] (https://gist.github.com/a39b087da394b746e4fe)। – Stennie