2013-09-27 10 views
5

मैं मोंगोडीबी से $substr कमांड के साथ एकत्रीकरण पाइपलाइन क्वेरी का निर्माण कर रहा हूं, लेकिन मुझे नहीं पता कि एमजीओ ड्राइवर के साथ जाने के लिए आवश्यक सरणी का प्रतिनिधित्व कैसे किया जाए क्योंकि इसमें विभिन्न प्रकार के मूल्य होते हैं (स्ट्रिंग, int)।मिश्रित प्रकारों के साथ एक सरणी का प्रतिनिधित्व कैसे करें

यहाँ जावास्क्रिप्ट में क्वेरी है:

[ {$group: {"_id": {"dt": {"$substr": ["$dt",0,6]}}}} ] 

क्या यह सूचकांक 0 शुरू करने और सूचकांक 6.

समाप्त होने के साथ (एकत्रीकरण के पिछले चरण से) dt की सबस्ट्रिंग प्राप्त करना कोशिश कर रहा है

जाओ में मुझे मिल गया:

[]bson.M{"$group": bson.M{"_id": bson.M{"dt": bson.M{"$substr": ["$dt",0,6]}}}}} 

लेकिन ["$dt",0,6] एक सही प्रतिनिधित्व नहीं है और सब कुछ मैंने कोशिश की असफल रहा है।

+0

यदि आपके द्वारा प्राप्त डेटा में मिश्रित प्रकार होते हैं, तो आमतौर पर इसके लिए एक संरचना को रोल करना बेहतर होता है। यह आपको सुरक्षा टाइप करता है और दूसरों के लिए आपके कोड को समझना आसान बनाता है। – fuz

उत्तर

10

आप इन प्रकार []interface{} का एक टुकड़ा का उपयोग कर मूल्यों का प्रतिनिधित्व कर सकते हैं:

l := []interface{}{"$dt", 0, 6} 

आप एक छोटे से वाक्य रचना गंदा मिल जाए, आप आसानी से एक स्थानीय प्रकार यह देखने के लिए बनाने के लिए परिभाषित कर सकते हैं अच्छे:

type list []interface{} 
    l := list{"$dt", 0, 6} 
संबंधित मुद्दे

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