2011-11-09 19 views
5

मैं मौजूदा डेटा लेना चाहता हूं और इसे RavenDB में रखना चाहता हूं।JSON को RavenDB में कैसे स्टोर करें?

मेरा मौजूदा डेटा एक्सएमएल प्रारूप में था, इसलिए मैंने इसे JSON में बदल दिया।

मेरा अगला कदम क्या होना चाहिए? क्या मैं इसे RavenDB में स्टोर कर सकता हूं? क्या मुझे इसे स्टोर करने के लिए नई ऑब्जेक्ट्स बनाने की आवश्यकता है?

अग्रिम धन्यवाद!

+0

@ShunWilson यही कारण है कि इसे टिप्पणी के रूप में पोस्ट किया गया है, उत्तर के रूप में नहीं। –

उत्तर

1

मुझे लगता है कि आपका जेसन-डेटा आपके अनुप्रयोग डोमेन के डेटा का प्रतिनिधित्व करता है, और आप अपने आवेदन में उस डेटा के साथ काम करने के लिए गुणों के साथ कक्षाएं चाहते हैं, है ना?

अगर ऐसा है, तो आप और एक साधारण आयात आवेदन, जो आपके डोमेन मॉडल एक बार भरता लिखने की ज़रूरत तो नियमित RavenDB दस्तावेजों, अभी जिस तरह तुम RavenDB साथ किसी अन्य वस्तु की दुकान के रूप में अपने सभी वस्तुओं संग्रहीत करता है।

क्या यह समझ में आता है?

+1

यह समझ में आता है। मैं अंततः इसे हल करने के लिए वास्तव में एक त्वरित और गंदे तरीके की तलाश में था, लेकिन जितना अधिक मैं इसे देखता हूं, उतना ही मैं प्रवासन को महसूस कर रहा हूं, दर्द है, और अब मैं चौकस हूं, कम सिरदर्द में भविष्य। धन्यवाद! – ZacAttack

5

रावेनडीबी क्लाइंट का उपयोग करके RavenDB को सामग्री सबमिट करना अनिवार्य नहीं है, और न ही पहले एक डोमेन मॉडल को पॉप्युलेट करना आवश्यक है। यह अनावश्यक प्रयास है और केवल डेटा सबमिशन/सम्मिलन/माइग्रेशन/आयात की प्रक्रिया को जटिल करता है।

आप HTTP API का उपयोग कर सीधे जेएनओएन प्रारूपित दस्तावेज़ों को RavenDB पर सबमिट कर सकते हैं, विशेष रूप से आप सरल उदाहरणों के लिए "एकल दस्तावेज़ संचालन" विषय की समीक्षा करना चाहेंगे जो वर्तमान में 'कर्ल' का उपयोग करके उदाहरण दिखाते हैं।

निम्नलिखित .NET कोड पर विचार करें:

var url = string.Format("http://ravendb-server:8080/databases/{0}/docs/{1}", databaseName, docId); 
var webRequest = System.Net.HttpWebRequest.CreateHttp(url); 
webRequest.Method = "PUT"; 
webRequest.ContentType = "application/json"; 
webRequest.Headers["Raven-Entity-Name"] = entityName; 
var stream = webRequest.GetRequestStream(); 
using (var writer = new System.IO.StreamWriter(webRequest.GetRequestStream())) 
{ 
    writer.Write(json); 
} 
var webResponse = webRequest.GetResponse(); 
webResponse.Close(); 

ऊपर टुकड़ा आप एक विशिष्ट डेटाबेस और निर्दिष्ट आईडी के साथ एक विशेष दस्तावेज़ संग्रह में एक मान्य JSON दस्तावेज़ प्रस्तुत करने के लिए अनुमति देता है। डेटाबेस चयन और आईडी पदनाम यूआरएल पथ के माध्यम से किया जाता है, और दस्तावेज़ संग्रह मेटाडेटा हेडर Raven-Entity-Name के साथ निर्दिष्ट किया गया है।

additional metadata headers आप Raven-Clr-Type या Last-Modified जैसे भेजना चाहते हैं, लेकिन उनकी आवश्यकता नहीं है।

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