2009-08-03 13 views
5

Podoba mi się pomysł zorientowanych na dokumenty baz danych, takich jak CouchDB. Szukam prostego analogu.Wbudowany analog CouchDB, taki sam jak sqlite dla SQL Server

Moje wymagania to tylko: magazyn

  1. oporność na schemacie mniej danych;
  2. niektóre proste zapytania;
  3. dobrze mieć transakcje i wersjonowanie;
  4. API ruby;
  5. map/reduce jest również dobrze mieć;
  6. powinien działać na dzielonego hostingu

Co nie muszę to interfejsy REST/HTTP (użyję go-proc). Nie potrzebuję też całej skalowalności.

+0

I Nadal szukam ... W tle ... –

Odpowiedz

4

Bardzo prostym rozwiązaniem byłoby PStore z Biblioteki Standardowej Rubiego. Należy spełnić niemal wszystkie wymagania:

  1. PStore sklepów Ruby obiektów w hierarchii plików, dzięki czemu można łatwo używać struktur Hash-like, to masz w CouchDB
  2. Można uzyskać dostęp do zawartości PStore z proste API
  3. ma transakcji, a nie wersje o ile wiem
  4. tak
  5. można używać mapę Ruby i wstrzyknąć funkcje
  6. Wszystko czego potrzebujesz to dostęp do systemu plików

Przykład:

dane Włóż do sklepu:

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 

zapytania suma cen wszystkich produktów:

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

Więcej informacji w tym blog-post

+0

Hm, tak wydaje się, że tego właśnie potrzebuję. Na pewno spróbuję tego. Dziękuję Ci bardzo! –

+0

To wielkie dzięki za wskazanie PStore – krichard

0

Wygląda na to, że potrzebujesz Berkeley DB. Robi wszystko, co chcesz, oprócz mapy/zmniejszenia.

Powiązane problemy