MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

JSON पथ मूल वस्तु, या समकक्ष MongoDB क्वेरी

अपना खुद का इनाम जोड़ने के कुछ ही समय बाद, मैंने समाधान निकाला। मेरी समस्या में एक ही मूल संरचना है, जो एक अभिभावक पहचानकर्ता है, और रेटिंग के लिए कुछ संख्या एन चाइल्ड कुंजी/मूल्य जोड़े (गुणवत्ता, मूल्य, आदि...)।

सबसे पहले, आपको एक JSON इनपुट चरण की आवश्यकता होगी जो SKU, नाम, और size_break_costs सरणी, सभी को स्ट्रिंग्स के रूप में प्राप्त करे। महत्वपूर्ण हिस्सा यह है कि size_break_costs एक स्ट्रिंग है, और मूल रूप से केवल एक कड़े JSON सरणी है। सुनिश्चित करें कि JSON इनपुट के कंटेंट टैब के तहत, "लापता पथ को अनदेखा करें" चेक किया गया है, यदि आपको एक खाली सरणी वाला एक मिलता है या किसी कारण से फ़ील्ड गायब है।

अपने क्षेत्रों के लिए, उपयोग करें:

Name           | Path               | Type
ProductSKU     | $.sku              | String
ProductName    | $.name             | String
SizeBreakCosts | $.size_break_costs | String

मैंने इस चरण के बाद "SizeBreakCosts IS NOT NULL" शर्त के साथ एक "फ़िल्टर पंक्तियाँ" ब्लॉक जोड़ा है, जिसे बाद में एक दूसरे JSON इनपुट ब्लॉक में पास कर दिया जाता है। यह दूसरा JSON ब्लॉक, आपको "स्रोत को फ़ील्ड में परिभाषित किया गया है?" की जांच करनी होगी, और "फ़ील्ड से स्रोत प्राप्त करें" का मान "SizeBreakCosts" पर सेट करना होगा, या जो भी आपने इसे पहले JSON इनपुट ब्लॉक में नाम दिया है।

दोबारा, सुनिश्चित करें कि "लापता पथ को अनदेखा करें" चेक किया गया है, साथ ही "खाली फ़ाइल को अनदेखा करें" भी चेक किया गया है। इस ब्लॉक से, हम दो फ़ील्ड प्राप्त करना चाहेंगे। हमारे पास पहले से ही प्रत्येक पंक्ति के साथ ProductSKU और ProductName होगा, और यह दूसरा JSON इनपुट चरण इसे आगे विभाजित करेगा, हालांकि कई पंक्तियाँ SizeBreakCosts इनपुट JSON में हैं। फ़ील्ड के लिए, उपयोग करें:

Name     | Path           | Type
Quantity | $.[*].quantity | Integer
Size     | $.[*].size     | String

जैसा कि आप देख सकते हैं, ये पथ "$। आकार।

अब प्रत्येक पंक्ति में मूल वस्तु से एसकेयू और नाम होना चाहिए, और प्रत्येक बच्चे की वस्तु से मात्रा और आकार होना चाहिए। इस उदाहरण को एक टेक्स्ट फ़ाइल में डंप करते हुए, मुझे मिला:

ProductSKU;ProductName;Size;Quantity
SK3579;Authority;S; 80
SK3579;Authority;M; 14
SK3579;Authority;L; 55



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB खोल में डेटाबेस नहीं बना रहा है

  2. Node.js MongoDB से कनेक्ट करने में विफल

  3. जावा के लिए मोंगो ड्राइवर का उपयोग करके इंटरफ़ेस ऑब्जेक्ट्स की सूची सहेजें

  4. MongoDB बनाम DynamoDB:आपको क्या जानना चाहिए

  5. उप-दस्तावेज़ से $sum घटाएँ