Frage

Ich mag eine Vorstellung von Dokumenten orientierten Datenbanken wie CouchDB. Ich suche einfach analog.

Meine Anforderungen sind einfach:

  1. persistance Speicher für Schema weniger Daten;
  2. einig einfacher in-proc Quering;
  3. gut haben, Transaktionen und Versionierung;
  4. Rubin API;
  5. Karte / reduzieren, ist aslo gut zu haben;
  6. sollte auf Shared-Hosting-
  7. arbeiten

Was ich nicht brauche ist REST / HTTP-Schnittstellen (I in-proc verwenden). Ich brauche nicht auch alle Skalierbarkeit Zeug.

War es hilfreich?

Lösung

Eine sehr einfache Lösung wäre PStore von Rubys Standard Library. Es sollte fast alle Ihre Anforderungen erfüllen:

  1. PStore speichert Ruby-Objekthierarchien in Dateien, so dass Sie leicht die Hash-ähnliche Strukturen verwenden können, würden Sie in CouchDB haben
  2. Sie können den Inhalt des PStore mit einem einfachen API zugreifen
  3. Es hat Geschäfte, aber keine Versionen soweit ich weiß
  4. ja
  5. Sie können Rubys Karte verwenden und Funktionen injizieren
  6. 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
scroll top