将多个作者存储到couchbase数据库

将多个作者存储到couchbase数据库,couchbase,couchbase-view,nosql,Couchbase,Couchbase View,Nosql,我是“couchbase服务器”的新手。我正在寻找的是存储10个作者的名字到couchbase文件一个接一个。有人请帮助我,是否结构像一个单一的文件“作者”和多个值 {id:1,name:Auther 1},{id:2,name:Author 2} 或者将Author 1存储到文档,将Author 2存储到另一个文档 如果是这样,如何在“插入”命令之前自动增加id。您可以将所有作者存储在一个文档中 { doctype : "Authors", AuthorNames:[ {

我是“couchbase服务器”的新手。我正在寻找的是存储10个作者的名字到couchbase文件一个接一个。有人请帮助我,是否结构像一个单一的文件“作者”和多个值

{id:1,name:Auther 1},{id:2,name:Author 2}

或者将Author 1存储到文档,将Author 2存储到另一个文档


如果是这样,如何在“插入”命令之前自动增加
id

您可以将所有作者存储在一个文档中

{  doctype : "Authors",
 AuthorNames:[
     {
     id: 1,
     Name : "author1"
      }
    {
    id: 2,
    Name : "author2"
    }
  so on
  ]

如果要增加ID,一种方法是在新文档中一次输入一个作者姓名,但ID将随机生成,并且不会以增量顺序生成。

在Couchbase中,更多地考虑应用程序将如何使用数据,而不是如何存储数据。例如,您的应用程序是否需要始终获取10位作者的全部信息?如果是这样,那么一份文件可能是值得的。也许您的应用程序一次只需要读/写一位作者。然后,您可能希望将每个对象都放在各自的对象中,但要有一个对象键模式,这样才能快速获取对象。经常使用的对象保存在托管缓存中,其他不经常使用的对象可能会从托管缓存中掉出来……这没关系

另一个因素是数据的读写比

正如我所说,这取决于应用程序如何读取和写入数据。将此作为如何存储数据的指南

单个JSON文档非常简单。更高级的模式设计,每个作者都在自己的文档中,您可以通过对象键访问它们,可能会更复杂一些,但最终会更快,更具可扩展性,这取决于我已经指出的。我将列出一个示例模式和一些可能性

对于作者,我可以使用如下对象键创建每个作者JSON文档:

作者::ID

其中ID是一个保存在特殊incrementer对象中的值,我将其称为authors::incrementer。将该对象视为仅包含恰好是数组上限的整数的键值对。Couchbase SDK包含一个特殊函数来增加这样一个整数对象。有了它,我的应用程序可以很快地将对象键组合在一起。如果我想查找第5位作者,我会为“authors::5”执行一个按对象读取键。如果我需要获得10,我将执行一个并行化的BulkGet函数,并从authors::1到authors::10获得authors::1。如果我想得到所有的作者,我得到incrementer对象,然后得到那个整数,然后得到一个并行的批量get。通过这种方式,我可以将它们按顺序排列,或者按我喜欢的任何顺序排列,我通过对象键访问它们,这在Couchbase中非常快

尽管如此,我可以使用一个视图来查询这些数据或Couchbase 4.0中即将出现的“”,或者我可以在查询和按对象键获取对象时进行混合和匹配。密钥访问总是更快。这是问一个问题,然后去得到的对象和简单地知道答案,并立即得到它之间的区别