问题标签 [couchdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1241 浏览

sharepoint - 以文档为中心的系统的基本原理是什么?

我知道两个著名的以文档为中心的系统:Sharepoint 服务器和 Lotus Notes。一定还有其他人。例如,我听说过 CouchDB。主要的实现差异是什么,它们如何影响:

可用性

检索性能

搜索性能/质量

可扩展性/集成

如果您能详细说明为什么将这些文档存储在关系数据库中并在适当的模式中使用元数据存储来装饰它们,那么您将获得奖励。我很难相信这些系统与论坛和博客有很大不同,它们本身是基于关系数据库的,业务代码位于顶部。

额外奖励:Lotus Notes 为何很难找到相关文档?我会很感激一些指示。

0 投票
1 回答
1342 浏览

view - CouchDB 中的视图问题

我已尽可能密切关注http://books.couchdb.org/relax/browsing-map-views上的信息,但我无法为我的文档生成视图。

我的数据库名称是“twitter”,我的设计文档如下所示:

它应该可以在http://myurl/twitter/_view/testdocview/getRev 访问。但是,尝试查看它时出现此错误:

我究竟做错了什么?

0 投票
4 回答
3239 浏览

couchdb - CouchDB 是否支持多范围查询?

CouchDB 中如何实现多范围查询?对于单个范围条件,startkey 和 endkey 组合可以正常工作,但同样的事情不适用于多个范围条件。

我的视图功能是这样的:

我需要获得loan_period> 5 和 loan_amount> 30000 的整个文档。我的 startkey 和 endkey 参数是这样的:

在这里,我没有得到想要的结果。我认为我的 startkey 和 endkey 参数是错误的。谁能帮我?

0 投票
6 回答
1641 浏览

ruby - 如何停止“相关性”思考

在工作中,我们最近开始了一个使用 CouchDB(面向文档的数据库)的项目。我一直很难忘记我所有的关系数据库知识。

我想知道你们中的一些人是如何克服这个障碍的?你是如何停止相关性思考并开始记录性思考的(我为编造这个词道歉)。

有什么建议么?有帮助的提示?

编辑:如果有什么不同,我们使用 Ruby 和 CouchPotato 连接到数据库。

编辑 2:SO 让我接受答案。我认为,我选择了最能帮助我学习的那个。但是,我想没有真正的“正确”答案。

0 投票
15 回答
47521 浏览

c# - 将 CouchDB 与 .NET 结合使用

.NET(托管代码)可以读写 CouchDB 吗?

我想构建我的项目的一部分,使用 CouchDB 进行文档管理

0 投票
2 回答
2099 浏览

couchdb - CouchDB 是否支持 unqiue 键约束?

我来自 RDBMS 背景,我在这里有一个应用程序,它需要良好的可扩展性和低延迟。我想试试 CouchDB。但是,我需要检测特定 INSERT 操作何时因唯一键约束而失败。CouchDB 支持这个吗?我看了看文档,但我找不到任何相关的东西。

0 投票
1 回答
533 浏览

couchdb - CouchDB-基本分组问题

我有一个包含组字段的用户文档。该字段是一组组 ID。我想编写一个返回(groupid 作为键)->(用户文档数组作为 val)的视图。这个映射操作似乎是一个好的开始。

但是我的减少尝试显然有一些非常错误的地方:

我正在运行 CouchDB 0.10dev。任何帮助表示赞赏。

0 投票
5 回答
7575 浏览

couchdb - 键值存储中的原子事务

请原谅术语中的任何错误。特别是,我正在使用关系数据库术语。

有许多持久键值存储,包括CouchDBCassandra,以及许多其他项目。

反对它们的一个典型论点是它们通常不允许跨多行或多表的原子事务。我想知道是否有一种通用方法可以解决这个问题。

以一组银行账户的情况为例。我们如何将钱从一个银行账户转移到另一个银行账户?如果每个银行账户都是一行,我们希望更新两行作为同一交易的一部分,减少一个的值并增加另一个的值。

一种明显的方法是有一个单独的表来描述事务。然后,将资金从一个银行账户转移到另一个银行账户只需在该表中插入一个新行。我们不存储两个银行账户中的任何一个的当前余额,而是依赖于汇总交易表中所有适当的行。然而,很容易想象这将是太多的工作。一家银行每天可能有数百万笔交易,而一个单独的银行账户可能很快就会有数千笔与之相关的“交易”。

如果基础数据自您上次抓取后发生更改,则许多(全部?)键值存储将“回滚”操作。可能这可用于模拟原子事务,然后,您可以指示特定字段已锁定。这种方法存在一些明显的问题。

还有其他想法吗?完全有可能我的方法完全不正确,而且我还没有把我的大脑包裹在新的思维方式上。

0 投票
2 回答
41225 浏览

couchdb - Cassandra 和 CouchDB 有什么区别?

我正在查看这两个项目,但我看不出有什么区别

来自卡桑德拉网站:

Cassandra 是一个高度可扩展、最终一致、分布式、结构化的键值存储……Cassandra 是最终一致的。与 BigTable 一样,Cassandra 提供了比典型的键/值系统更丰富的基于 ColumnFamily 的数据模型。

来自 CouchDB 网站:

Apache CouchDB 是一个分布式、容错和无模式的面向文档的数据库,可通过 RESTful HTTP/JSON API 访问。

也就是说,我认为每个项目之间的具体差异为:访问方法、书面语言等。但举个例子,当您谈论SOLRSphinx时,您知道两者都是具有很大差异的索引器,但最终都是索引器。

我可以在这里说 Cassandra 和 CouchDB 是非关系数据库,在某些情况下可以互相替换吗?

0 投票
3 回答
3063 浏览

couchdb - couchdb 作为“公文包”:复制和/或数据库转储?

我需要在不同位置的两台台式计算机之间来回迁移一些 CouchDB 数据库数据。其中一台计算机是 Windows XP,一台是运行 OS X 10.5 的 Macintosh。两者都不能通过互联网实际连接到另一个(PC 有防火墙,Mac 没有快速的互联网访问)。但我确实有一个来回携带的 USB 拇指驱动器。

有没有办法为 CouchDB 进行数据库转储(如 MySQL 的 mysqldump),以便我可以从一个导出并导入到另一个?我阅读了有关数据库复制的信息,但它似乎只存在于两个可以相互通信的实时数据库之间。我可以复制原始数据库文件,但我不确定 PC 运行的是什么版本的 CouchDB(它是最新的原生 Windows CouchDB 安装程序,它告诉我 0.0.0),Mac 运行的是最新版本的CouchDBX,而且我不确定文件版本是否兼容。

CouchDB 的复制和版本控制功能对我的应用程序非常有吸引力,因此我期待着进行此设置。

编辑:看起来你要么需要:

  • couchdb 直接复制到另一个(或相同的)couchdb 服务器
  • 来自相同版本的 couchdb 的 couchdb 数据库文件
  • couchdb-python 工具(“couchdb-dump”和“couchdb-load”),但由于某种原因,我无法让它们在 WinXP+Python 2.6.2 上可靠地工作(转储“有效”但加载说它未能通过完整性检查)

这真是令人沮丧。:/