2009-08-03 12 views
5

Me gusta una idea de bases de datos orientadas a documentos como CouchDB. Estoy buscando análogo simple.Analógico integrado de CouchDB, igual que sqlite para SQL Server

Mis requisitos es simplemente: almacenamiento

  1. persistencia para el esquema de menos datos;
  2. algunas query en-proc simple;
  3. bueno tener transacciones y control de versiones;
  4. ruby ​​API;
  5. map/reduce is aslo good to have;
  6. deben trabajar en alojamiento compartido

Lo que no necesito es las interfaces REST/HTTP (lo voy a utilizar en proceso). Además, no necesito todas las cosas de escalabilidad.

+0

I sigo buscando ... En el fondo ... –

Respuesta

4

Una solución muy simple sería PStore de Ruby's Standard Library. Debe cumplir con casi todas sus necesidades:

  1. tiendas PStore Rubí jerarquías de objetos de archivos, por lo que puede utilizar simplemente las estructuras Hash similar, que tendría en CouchDB
  2. Se puede acceder al contenido de la PStore con una API sencilla
  3. tiene transacciones, pero hay versiones por lo que yo sé
  4. puede utilizar Map de Ruby e inyectar funciones
  5. Todo lo que necesita es tener acceso al sistema de archivos

Ejemplo:

Insertar datos en el local:

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 

consulta la suma de los precios de todos los productos:

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

Más información en este blog-post

+0

Hm, sí parece que esto es lo que necesito. Definitivamente intentaré esto. ¡Muchas gracias! –

+0

Esto es genial gracias por señalar PStore – krichard

0

Parece que necesita Berkeley DB. Hace todo lo que lista a excepción de map/reduce.

Cuestiones relacionadas