यहां कई मुद्दे हैं:
1) कृपया ध्यान रखें कि MongoDB सभी दस्तावेज़ों को BSON प्रारूप का उपयोग करके संग्रहीत करता है। यह भी ध्यान दें कि बीएसओएन स्पेक यूटीएफ -8 स्ट्रिंग एन्कोडिंग को संदर्भित करता है, यूटीएफ -16 एन्कोडिंग नहीं।
संदर्भ:http://bsonspec.org/#/specification
2) मोंगो खोल में जावास्क्रिप्ट ड्राइवर समेत सभी ड्राइवरों को यूटीएफ -8 के रूप में एन्कोड किए गए तारों को ठीक से संभालना चाहिए। (यदि वे ऐसा नहीं करते हैं तो यह एक बग है!) कई ड्राइवर UTF-16 को ठीक से संभालते हैं, साथ ही, जहां तक मुझे पता है, UTF-16 आधिकारिक तौर पर समर्थित नहीं है।
3) जब मैंने पायथन ड्राइवर के साथ इसका परीक्षण किया, तो MongoDB सफलतापूर्वक लोड हो सकता है और एक स्ट्रिंग मान लौटा सकता है जिसमें एक टूटी हुई UTF-16 कोड जोड़ी होती है। हालांकि, मैं मोंगो खोल का उपयोग करके एक टूटी हुई कोड जोड़ी लोड नहीं कर सका, न ही मैं एक टूटी हुई कोड जोड़ी वाली स्ट्रिंग को खोल में जावास्क्रिप्ट चर में संग्रहीत कर सकता था।
4) mapReduce () एक सही UTF-16 कोड जोड़ी का उपयोग करके स्ट्रिंग डेटा पर सही ढंग से चलता है, लेकिन एक टूटी हुई कोड जोड़ी वाले स्ट्रिंग डेटा पर mapReduce () चलाने का प्रयास करते समय यह एक त्रुटि उत्पन्न करेगा।
ऐसा प्रतीत होता है कि mapReduce() विफल हो रहा है जब MongoDB जावास्क्रिप्ट इंजन द्वारा उपयोग के लिए BSON को JavaScript वैरिएबल में बदलने का प्रयास कर रहा है।
5) मैंने इस मुद्दे के लिए जीरा मुद्दा सर्वर-6747 दायर किया है। बेझिझक इसका अनुसरण करें और इसे वोट करें।