Embedded-Analogon von CouchDB, gleich wie SQLite für SQL Server
-
10-07-2019 - |
Frage
Ich mag eine Vorstellung von Dokumenten orientierten Datenbanken wie CouchDB. Ich suche einfach analog.
Meine Anforderungen sind einfach:
- persistance Speicher für Schema weniger Daten;
- einig einfacher in-proc Quering;
- gut haben, Transaktionen und Versionierung;
- Rubin API;
- Karte / reduzieren, ist aslo gut zu haben;
- sollte auf Shared-Hosting- arbeiten
Was ich nicht brauche ist REST / HTTP-Schnittstellen (I in-proc verwenden). Ich brauche nicht auch alle Skalierbarkeit Zeug.
Lösung
Eine sehr einfache Lösung wäre PStore von Rubys Standard Library. Es sollte fast alle Ihre Anforderungen erfüllen:
- PStore speichert Ruby-Objekthierarchien in Dateien, so dass Sie leicht die Hash-ähnliche Strukturen verwenden können, würden Sie in CouchDB haben
- Sie können den Inhalt des PStore mit einem einfachen API zugreifen
- Es hat Geschäfte, aber keine Versionen soweit ich weiß
- ja
- Sie können Rubys Karte verwenden und Funktionen injizieren
- Alles, was Sie brauchen, ist Zugriff auf das Dateisystem
Beispiel:
Einfügen von Daten in den Speicher:
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
Abfrage der Summe der Preise aller Produkte:
store.transaction do
store['products'].map {|p| p[:price]}.inject {|sum, p| sum + p}
end
Weitere Informationen in diesem Blog-post
Andere Tipps
Klingt wie Sie Berkeley DB . Er tut alles, was man mit Ausnahme der Karte Liste / reduzieren.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow