2015-12-03 8 views
7

का उपयोग करते समय ISO8601 के बजाय समय छद्मोटाइप मैं RethinkDB के साथ शुरू कर रहा हूं और मुझे कुछ समस्याएं समझने में कुछ परेशानी हो रही है जो मैं चल रहा हूं।समूह ऑपरेटर

समस्या किसी नोडजेएस ऐप (rethinkdbdash ड्राइवर का उपयोग करके) दिनांक दिनांक प्रकारों के साथ ऑब्जेक्ट्स से पूछताछ कर रही है जो JSON API का खुलासा करता है। अगर मैं अपने वस्तुओं को व्यक्तिगत रूप से क्वेरी की तरह:

db.table('apples').max('timestamp'); 

मैं, टाइमस्टैम्प क्षेत्रों के लिए जावास्क्रिप्ट दिनांक मिलता है जबकि अगर मैं एक समूह ऑपरेटर द्वारा क्वेरी में की तरह में चलाएँ:

db.table('apples').group('type').max('timestamp'); 

मैं दिनांक समय pseudotypes (मिल मुझे लगता है कि यह सही नाम है) इसके बजाय उसी टाइमस्टैम्प फ़ील्ड के लिए। कुछ ऐसा:

{ 
    "$reql_type$": "TIME", 
    "epoch_time": 1423077646.772, 
    "timezone": "-07:00" 
} 

क्या यह अपेक्षित व्यवहार है? इसके पीछे तर्क क्या है?

मैं अपने JSON में serialized iso8601 तिथियां वापस लौटना चाहता हूं और इस डेटा प्रकार को ग्राहकों को पार्सिंग पारदर्शी बनाने के लिए नहीं।

धन्यवाद,


अद्यतन यह 2.2.7 के लिए पहले के संस्करणों के लिए एक ज्ञात समस्या थी। Fixed here

उत्तर

2

यह rethinkdbdash में एक बग की तरह दिखता है। सर्वर हमेशा ग्राहकों को छद्मोटाइप ($reql_type$ फ़ील्ड के साथ ऑब्जेक्ट) के रूप में भेजता है, और ग्राहक छद्मोटाइप को मूल समय वस्तुओं में बदलने के लिए ज़िम्मेदार होते हैं (क्योंकि अलग-अलग भाषाओं में ड्राइवरों को अलग-अलग करना पड़ता है)। मैं https://github.com/neumino/rethinkdbdash/issues पर एक बग खोलूंगा।

मुझे लगता है कि बग का स्रोत यह है कि groupGROUPED_DATA छद्मोटाइप देता है और rethinkdbdash अन्य छद्मोटाइपों के अंदर छद्मोटाइप को सही ढंग से परिवर्तित नहीं कर रहा है। यदि आप db.table('apples').group('type').max('timestamp').ungroup() चलाते हैं, तो ड्राइवर द्वारा पैच किए जाने तक इस क्वेरी के लिए समस्या ठीक हो सकती है।

+1

आपके लिए धन्यवाद @mlucy, ungrouping वास्तव में इस विशिष्ट मामले में समस्या को ठीक करता है। मैं इसे rethinkdbdash लोगों तक लाऊंगा। एक बार फिर धन्यवाद। – Marc