CouchDB 的嵌入式模拟,与 SQL Server 的 sqlite 相同
-
10-07-2019 - |
题
我喜欢像 CouchDB 这样的面向文档的数据库的想法。我正在寻找简单的模拟。
我的要求只是:
- 无模式数据的持久性存储;
- 一些简单的进程内查询;
- 最好有事务和版本控制;
- 红宝石 API;
- map/reduce 也很好;
- 应该适用于共享主机
我不需要的是 REST/HTTP 接口(我将在进程中使用它)。我也不需要所有可扩展性的东西。
解决方案
一个非常简单的解决方案是 网上商店 来自 Ruby 的标准库。它应该满足您几乎所有的要求:
- PStore 在文件中存储 Ruby 对象层次结构,因此您可以轻松使用 CouchDB 中的类似哈希的结构
- 您可以使用简单的 API 访问 PStore 的内容
- 它有交易,但据我所知没有版本
- 是的
- 您可以使用 Ruby 的映射和注入函数
- 您所需要的只是访问文件系统
例子:
将数据插入存储:
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
更多信息在此 博客文章
其他提示
听起来像你需要 伯克利数据库. 。它会执行您列出的所有操作,除了映射/归约之外。
不隶属于 StackOverflow