2009-08-03 19 views
5

Tôi thích ý tưởng về các cơ sở dữ liệu định hướng tài liệu như CouchDB. Tôi đang tìm kiếm tương tự đơn giản.Tương tự nhúng của CouchDB, giống như sqlite cho SQL Server

yêu cầu của tôi chỉ là: lưu trữ

  1. kiên trì cho schema ít dữ liệu;
  2. một số quy trình đơn giản trong proc;
  3. tốt để có giao dịch và phiên bản;
  4. API ruby;
  5. bản đồ/giảm là tốt;
  6. nên làm việc trên chia sẻ lưu trữ

Những gì tôi không cần là giao diện REST/HTTP (Tôi sẽ sử dụng nó trong-proc). Ngoài ra tôi không cần tất cả các công cụ mở rộng.

+0

tôi vẫn đang tìm kiếm ... Trong nền ... –

Trả lời

4

Một giải pháp rất đơn giản sẽ là PStore từ Thư viện chuẩn của Ruby. Nó phải đáp ứng hầu hết các yêu cầu của bạn:

  1. cửa hàng PStore của Ruby phân cấp đối tượng trong các tập tin, vì vậy bạn có thể dễ dàng sử dụng các cấu trúc băm như thế nào, bạn sẽ có trong CouchDB
  2. Bạn có thể truy cập vào các nội dung của PStore với một API đơn giản
  3. Nó có giao dịch, nhưng không có phiên bản như xa như tôi biết
  4. bạn có thể sử dụng bản đồ của Ruby và tiêm chức năng
  5. Tất cả bạn cần là truy cập vào hệ thống tập tin

Ví dụ:

Chèn dữ liệu vào cửa hàng:

require 'pstore' 
store = PStore.new("/tmp/store") 
store.transaction do 
    store["products"] = [{:name => "Test", :price => 100} 
         {:name => "Bla", :price => 120} 
         {:name => "Oink", :price => 300}] 
end 

Query tổng của các giá của tất cả các sản phẩm:

store.transaction do 
    store['products'].map {|p| p[:price]}.inject {|sum, p| sum + p} 
end 

Thông tin chi tiết tại đây blog-post

+0

Hm, có vẻ như đây là những gì tôi cần. Tôi chắc chắn sẽ thử điều này. Cảm ơn nhiều! –

+0

Đây là lời cảm ơn tuyệt vời vì đã chỉ ra PStore – krichard

0

Có vẻ như bạn cần Berkeley DB. Nó làm mọi thứ bạn liệt kê ngoại trừ bản đồ/giảm.

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