标签: couchdb

CouchDB中的分页?

我将如何实现分页所需的查询?

基本上,当请求第1页时,获取前5个条目.对于第2页,获取下一个5,依此类推.

我计划通过couchdb-python模块使用它,但这不会对实现产生任何影响.

pagination couchdb

43
推荐指数
2
解决办法
1万
查看次数

Redis,CouchDB还是Cassandra?

各种NoSQL数据库有哪些优点和缺点?

特别是,当在多个服务器上分配写入负载时,似乎Redis很弱.是这样的吗?这是一个大问题吗?服务有多大才能成为一个重大问题?

couchdb cassandra nosql redis

41
推荐指数
2
解决办法
3万
查看次数

数据库索引的排序字符串表(SSTable)或B +树?

使用两个数据库来说明这个例子:CouchDBCassandra.

CouchDB的

CouchDB使用B + Tree作为文档索引(使用巧妙的修改在其仅附加环境中工作) - 更具体地说,当文档被修改(插入/更新/删除)时,它们被附加到正在运行的数据库文件以及完整的Leaf - >文档后面的更新版本对受影响的所有节点的B +树的节点路径.

这些分段修改的索引修订与修改一起内联,使得完整索引是附加在文件末尾的最新索引修改的联合,以及在数据文件中进一步返回的仍然相关的附加部分,并且尚未修改.

搜索B +树是O(logn).

卡桑德拉

Cassandra将记录键在内存中保存在表中(让我们将它们视为此问题的数组),并将它们作为单独的(已排序的)排序字符串表不时写出来.

我们可以将所有这些表的集合视为"索引"(根据我的理解).

Cassandra需要不时地压缩/组合这些排序字符串表,从而创建索引的更完整的文件表示.

搜索已排序的数组是O(logn).

假设在CouchDB中维护部分B +树块与Cassandra中的部分排序字符串索引之间存在类似的复杂程度,并且假设两者都提供O(logn)搜索时间,您认为哪一个可以更好地表示数据库索引以及为什么?

我特别好奇是否有一个关于一个的实现细节使它特别有吸引力,或者如果它们都是一个清洗,你只需选择你喜欢使用的数据结构/对开发人员更有意义.

谢谢你的想法.

database indexing couchdb cassandra nosql

41
推荐指数
3
解决办法
2万
查看次数

CouchDB是一个真实世界的例子

今晚在我的日常技术谷歌搜索中我遇到了couchDB,在看到大量关于它如何比任何RDBM表现好十到一百倍的演示文稿之后,如何将它们从SQL语言,表格,主键等等中拯救出来.我决定亲自尝试一下.只有问题似乎我无法弄清楚它是如何工作的.

就像开始一样,我想使用couchDB编写一个Web联系人管理器.该项目将使用户能够做基本的事情

  • 创建/编辑/删除联系人
  • 查看他们订购的联系人列表
  • 按各种标准搜索它们

那么我该如何开始呢?

这里有一些我的想法

  • 为每个用户创建一个像July,Ann的数据库
  • 在那些数据库中,添加一些带有类型联系人的文档,文档首先看起来像这样看代码1
  • 创建/编辑/删除是直接的,只需要在好的数据库中进行PUT,POST,DELETE
  • 搜索将由像dnolen建议的couchdb-lucene处理

现在这里来了困难的部分,我真的不了解整个map/reduce概念以及如何使用它来完成我以前用SQL做的工作.还有视图如何处理分页,也分组.

我想构建一个屏幕,其中包含这样的链接分页集

John, Doe
Johny, Hallyday
Jon, Skeet

A B C D E F **J** etc .... <-- those are link to see persons with that first name

我应该创建什么样的视图才能实现这一目标,如果你能提供样品就很棒.


联系文件.

{
    type: 'contact',
    firstname: 'firstname',
    lastname: 'lastname',
    email: ['home': 'foobar@foobar.net', 'work': 'foobar@foobar-working.net'],
    phone: ['home': '+81 00 0000 0000'],
    address: []
    ... some other fields maybe ...
}
Run Code Online (Sandbox Code Playgroud)

couchdb

40
推荐指数
3
解决办法
4万
查看次数

CouchApps和用户身份验证

我在CouchDB用户列表中发布了此问题的变体,但尚未收到回复.

我很想知道是否有其他人建造了所谓的"CouchApp"; 直接托管在CouchDB中的纯HTML/JavaScript应用程序.如果是这样,您是如何处理用户身份验证的?我希望能够创建一个典型的登录表单(用户名,密码),然后在将用户传递给应用程序之前将这些凭据用于视图或其他机制(同时将其(加密的)用户ID存储在cookie,大概是).

我习惯于简单地通过couchdb-python和普通的Web服务器代理,但是想知道在这些类型的CouchApps中验证用户的任何最佳实践.

编辑:一年后,现在已经内置到CouchDB中. 这段视频是一个很棒的演示.(谢谢丹尼尔!)

couchdb

37
推荐指数
2
解决办法
9243
查看次数

按值排序CouchDB视图

我正在测试CouchDB以了解它如何处理记录一些搜索结果.我想做的是生成一个视图,我可以从结果中生成最顶层的查询.目前我有这样的事情:

示例文档部分

{
  "query": "+dangerous +dogs",
  "hits": "123"
}
Run Code Online (Sandbox Code Playgroud)

地图功能 (不完全是我需要/想要但它足以进行测试)

function(doc) {
  if (doc.query) {
    var split = doc.query.split(" ");
    for (var i in split) {
      emit(split[i], 1);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

减少功能

function (key, values, rereduce) {
  return sum(values);
}
Run Code Online (Sandbox Code Playgroud)

现在,这将使我得到一个格式,其中查询术语是关键,右边是该术语的计数,这很好.但我希望它按价值排序,而不是钥匙.从它的声音来看,CouchDB还不能实现这一点.

那么,有没有人有任何想法,我如何获得一个视图,我有一个查询条款及其相关计数的有序版本?我对CouchDB很新,我想不出我是如何编写所需的函数的.

sorting couchdb

37
推荐指数
3
解决办法
2万
查看次数

CouchDB备份和克隆数据库

我们正在考虑使用CouchdDB进行CMS-ish应用程序.有关备份我们的生产数据库的常见模式,最佳实践和工作流建议有哪些?

我对克隆数据库以用于开发和测试的过程特别感兴趣.

仅仅从正常运行的实例下复制磁盘上的文件是否足够?你能在两个实时运行的实例之间克隆数据库数据吗

我们将非常感谢您使用的技术的建议和描述.

database backup administration couchdb

36
推荐指数
4
解决办法
3万
查看次数

在CouchDB中进行一对多"JOIN"的最佳方法

我正在寻找一个等同于"SQL连接"的CouchDB.

在我的示例中,有些CouchDB文档是列表元素:

{ "type" : "el", "id" : "1", "content" : "first" } 
{ "type" : "el", "id" : "2", "content" : "second" } 
{ "type" : "el", "id" : "3", "content" : "third" } 
Run Code Online (Sandbox Code Playgroud)

有一个文档定义了列表:

{ "type" : "list", "elements" : ["2","1"] , "id" : "abc123" }
Run Code Online (Sandbox Code Playgroud)

如您所见,第三个元素已被删除,它不再是列表的一部分.所以它不能成为结果的一部分.现在我想要一个返回内容元素的视图,包括正确的顺序.

结果可能是:

{ "content" : ["second", "first"] }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,元素的顺序已经是应该的.另一个可能的结果

{ "content" : [{"content" : "first", "order" : 2},{"content" : "second", "order" : 1}] }
Run Code Online (Sandbox Code Playgroud)

我开始编写地图功能:

map = function (doc) {
  if (doc.type …
Run Code Online (Sandbox Code Playgroud)

couchdb mapreduce

33
推荐指数
1
解决办法
1万
查看次数

CouchDB在同一视图中进行排序和过滤

我正在尝试将CouchDB用于新的应用程序,我需要创建一个按多个字段排序并按多个字段过滤的视图.这是一个示例文档,我省略了_id和_rev以节省一些打字.

{
    "title": "My Document",
    "date": 1279816057,
    "ranking": 5,
    "category": "fun",
    "tags": [
        "couchdb",
        "technology"
    ],
}
Run Code Online (Sandbox Code Playgroud)

从文档中,我了解到我可以轻松地创建一个按排名等字段排序的视图.

function(doc) {
    emit(doc.ranking, doc);
}
Run Code Online (Sandbox Code Playgroud)

我还了解到,我可以轻松地按类别等字段进行过滤

function(doc) {
    emit(doc.category, doc);
}

http://127.0.0.1:5984/database/_design/filter/_view/filter?key=%22fun%22
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要同时做一堆这些事情.我想根据类别和标签进行过滤.我应该能够过滤到只有"fun"类别和"couchdb"标签的文档.我想通过按降序排序,然后按日期按升序排序,然后按字母顺序按标题排序过滤结果.

如何创建一个可以完成所有排序和过滤的视图?

sorting couchdb filter nosql

33
推荐指数
1
解决办法
2万
查看次数

将Objective-C对象序列化和反序列化为JSON

我需要将objective-c对象序列化和反序列化为JSON以存储在CouchDB中.人们是否有任何示例代码用于一般解决方案的最佳实践?我查看了一些JSON框架,它们在NSDictionary/NSArray级别停止.即很多框架将NSDictionary/NSArray序列化和反序列化为JSON.但我仍然需要将NSDictionary转换为Objective-C对象.

为了使事情变得更复杂,我的对象A可以引用对象B的NSArray/NSDictionary.

我的问题与这个问题非常相似,增加了收集要求.

从NSDictionary实例化自定义类

json couchdb objective-c nsdictionary nsarray

33
推荐指数
3
解决办法
6万
查看次数