Analogo incorporato di CouchDB, come sqlite per SQL Server
-
10-07-2019 - |
Domanda
Mi piace l'idea di database orientati ai documenti come CouchDB. Sto cercando un semplice analogo.
Le mie esigenze sono solo:
- memoria a persistenza per schema meno dati;
- alcune semplici richieste in-proc;
- buono per avere transazioni e versioning;
- API ruby;
- map / ridurre è anche bello avere;
- dovrebbe funzionare su hosting condiviso
Ciò di cui non ho bisogno sono le interfacce REST / HTTP (lo userò in-proc). Inoltre non ho bisogno di tutte le cose di scalabilità.
Soluzione
Una soluzione molto semplice sarebbe PStore dalla libreria standard di Ruby. Dovrebbe soddisfare quasi tutti i tuoi requisiti:
- PStore archivia le gerarchie di oggetti Ruby in file, in modo da poter usare facilmente le strutture simili a hash, come avresti in CouchDB
- Puoi accedere al contenuto del PStore con una semplice API
- Ha transazioni, ma nessuna versione per quanto ne so
- Si
- Puoi usare la mappa di Ruby e inserire funzioni
- Tutto ciò che serve è l'accesso al file system
Esempio:
Inserisci 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
Richiedi la somma dei prezzi di tutti i prodotti:
store.transaction do
store['products'].map {|p| p[:price]}.inject {|sum, p| sum + p}
end
Ulteriori informazioni in questo blog-post
Altri suggerimenti
Sembra che tu abbia bisogno di Berkeley DB . Fa tutto ciò che elenchi tranne la mappa / riduzione.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow