2011-11-09 30 views
5

Tôi muốn lấy dữ liệu hiện có và đặt nó vào RavenDB.Làm cách nào để lưu trữ JSON vào RavenDB?

Dữ liệu hiện có của tôi ở định dạng XML, vì vậy tôi đã chuyển đổi nó thành JSON.

Bước tiếp theo của tôi là gì? Tôi có thể lưu trữ nó trong RavenDB không? Tôi có cần tạo đối tượng mới để lưu trữ không?

Cảm ơn trước!

+0

@ShaunWilson đây là lý do tại sao nó được đăng dưới dạng nhận xét chứ không phải là câu trả lời. –

Trả lời

1

Tôi cho rằng dữ liệu json của bạn đại diện cho dữ liệu miền ứng dụng của bạn và bạn muốn lớp có thuộc tính làm việc với dữ liệu đó trong ứng dụng của bạn, phải không?

Nếu trường hợp đó xảy ra, bạn cần phải viết một ứng dụng nhập đơn giản, điền vào mô hình miền của bạn một lần và sau đó lưu trữ tất cả các đối tượng của bạn dưới dạng tài liệu RavenDB thông thường, cách bạn lưu trữ bất kỳ đối tượng nào khác với RavenDB.

Điều đó có hợp lý không?

+1

Điều đó có ý nghĩa. Cuối cùng tôi đã tìm kiếm một cách thực sự nhanh chóng và bẩn thỉu để giải quyết vấn đề này, nhưng càng nhìn vào điều này, tôi càng nhận ra rằng sự di cư là một nỗi đau, và sự chú ý của tôi bây giờ, càng ít đau đầu tương lai. Cảm ơn! – ZacAttack

5

Không bắt buộc phải gửi nội dung cho RavenDB bằng ứng dụng RavenDB, cũng không cần phải điền một mô hình miền trước. Đây là nỗ lực không cần thiết và chỉ làm phức tạp quá trình gửi/chèn/di chuyển/nhập dữ liệu.

Bạn có thể gửi tài liệu có định dạng JSON trực tiếp tới RavenDB bằng cách sử dụng HTTP API, cụ thể là bạn có thể muốn xem lại chủ đề "Hoạt động tài liệu đơn lẻ" cho các ví dụ đơn giản (hiện tại) hiển thị các ví dụ sử dụng 'curl'.

xem xét mã NET sau:

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(); 

Đoạn trên cho phép bạn gửi một tài liệu JSON hợp lệ vào cơ sở dữ liệu cụ thể và một bộ sưu tập tài liệu cụ thể với ID quy định. Lựa chọn cơ sở dữ liệu và chỉ định ID được thực hiện thông qua đường dẫn URL và Bộ sưu tập tài liệu được chỉ định với tiêu đề siêu dữ liệu Raven-Entity-Name.

additional metadata headers bạn có thể muốn gửi lên, chẳng hạn như Raven-Clr-Type hoặc Last-Modified nhưng không bắt buộc.

Các vấn đề liên quan