5

CouchDB のようなドキュメント指向データベースのアイデアが気に入っています。シンプルなアナログを探しています。

私の要件は次のとおりです。

  1. スキーマのないデータの永続ストレージ。
  2. 簡単なインプロセス クエリ。
  3. トランザクションとバージョン管理があると便利です。
  4. ルビー API;
  5. map/reduce もあると便利です。
  6. 共有ホスティングで動作するはずです

私が必要としないのは REST/HTTP インターフェイスです (インプロセスで使用します)。また、すべてのスケーラビリティーは必要ありません。

4

2 に答える 2

4

非常に単純な解決策は、Rubyの標準ライブラリのPStoreです。ほぼすべての要件を満たす必要があります。

  1. PStoreはRubyオブジェクト階層をファイルに格納するため、CouchDBの場合と同じようにハッシュのような構造を簡単に使用できます。
  2. シンプルなAPIでPStoreのコンテンツにアクセスできます
  3. トランザクションはありますが、私の知る限りバージョンはありません
  4. はい
  5. Rubyのマップおよびインジェクト関数を使用できます
  6. 必要なのはファイルシステムへのアクセスだけです

例:

ストアにデータを挿入します。

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

すべての製品の価格の合計を照会します。

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

このブログ投稿の詳細情報

于 2009-08-31T14:21:55.803 に答える
0

Berkeley DBが必要なようです。map/reduce を除いて、リストしたすべてのことを行います。

于 2009-08-04T07:43:56.640 に答える