2009-08-03 12 views
5

Mi piace l'idea di database orientati ai documenti come CouchDB. Sto cercando un semplice analogo.Analogico incorporato di CouchDB, come sqlite per SQL Server

mie esigenze è proprio: stoccaggio

  1. persistenza per lo schema meno di dati;
  2. alcuni semplici interrogatori in-proc;
  3. buono per avere transazioni e versioni;
  4. ruby ​​API;
  5. map/reduce è altrettanto buono da avere;
  6. dovrebbe funzionare su hosting condiviso

Quello che non serve è interfacce REST/HTTP (userò in-process). Inoltre non ho bisogno di tutte le cose di scalabilità.

+0

I Sto ancora cercando ... In background ... –

risposta

4

Una soluzione molto semplice sarebbe PStore dalla Ruby's Standard Library. Esso dovrebbe soddisfare quasi tutte le vostre esigenze:

  1. negozi PStore rubino gerarchie di oggetti nei file, in modo da poter usare facilmente le strutture Hash-like, si avrebbe in CouchDB
  2. È possibile accedere ai contenuti del PStore con una semplice API
  3. ha transazioni, ma non le versioni per quanto ne so
  4. È possibile utilizzare la mappa di Ruby e iniettare funzioni
  5. Tutto ciò che serve è l'accesso al file system

Esempio:

Inserire i dati nel negozio:

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 

interrogare la somma dei prezzi di tutti i prodotti:

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

maggiori informazioni in questo blog-post

+0

Hmm, sì, sembra che questo sia quello di cui ho bisogno. Proverò sicuramente questo. Grazie mille! –

+0

Questo è un grande ringraziamento per aver segnalato PStore – krichard

0

Suoni come se fosse necessario Berkeley DB. Fa tutto ciò che hai elencato eccetto map/reduce.

Problemi correlati