2009-08-03 9 views
5

J'aime les bases de données orientées document comme CouchDB. Je cherche un analogue simple.Analogique embarqué de CouchDB, identique à sqlite pour SQL Server

Mes besoins est juste:

  1. stockage pour le schéma persistence moins de données;
  2. une simple procédure d'enregistrement;
  3. bon d'avoir des transactions et des versions;
  4. ruby ​​API;
  5. carte/réduire est aussi bon d'avoir;
  6. devrait travailler sur l'hébergement mutualisé

Ce que je ne ai pas besoin est REST/interfaces HTTP (je vais l'utiliser en proc). De plus, je n'ai pas besoin de tout ce qui concerne l'évolutivité.

+0

I cherche encore ... En arrière-plan ... –

Répondre

4

Une solution très simple serait PStore de la bibliothèque standard de Ruby. Il devrait répondre à presque tous vos besoins:

  1. magasins pstore hiérarchies d'objets Ruby dans des fichiers, de sorte que vous pouvez facilement utiliser les structures comme pour le haschich, vous auriez dans CouchDB
  2. Vous pouvez accéder au contenu du PStore avec une API simple
  3. Il a des transactions, mais pas de versions pour autant que je sais
  4. oui
  5. vous pouvez utiliser la carte de Ruby et injecter fonctions
  6. Tout ce que vous avez besoin est un accès au système de fichiers

Exemple:

Insérez des données dans le magasin:

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 

Requête la somme des prix de tous les produits:

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

Plus d'informations dans ce blog-post

+0

Hm, oui semble que c'est ce dont j'ai besoin. Je vais certainement essayer cela. Merci beaucoup! –

+0

C'est un grand merci de souligner PStore – krichard

0

On dirait que vous avez besoin de Berkeley DB. Il fait tout ce que vous listez sauf pour la carte/réduire.

Questions connexes