Couchbase中数据库的等价物是什么

时间:2016-01-23 12:39:05

标签: node.js database couchbase

MongoDB中有3个层:

  1. 服务器
  2. 数据库
  3. 集合
  4. 但是,在Couchbase中,我可以看到缺少的东西;层是这样的:

    1. 群集(一组服务器)
    2. 数据库(MISSING !!!)
    3. 铲斗
    4. 我需要部署2个数据库,1个用于开发,1个用于生产。缺少的数据库让我处境艰难。

5 个答案:

答案 0 :(得分:2)

你可以粗略地认为Couchbase存储桶与MongoDB中的数据库类似,尽管在Couchbase中似乎更常见的是拥有更少的存储桶并在一个存储桶中包含多个类型(通过在存储的每个JSON对象上使用类型字段来区分)。

我真的建议不要在同一个集群上安装开发和生产存储桶,它们应该不惜一切代价分开。一旦你运行了两个集群,你将不会遇到上述问题,你甚至可以在本地运行一个vms集群进行开发,然后在云提供商上运行一个真正的生产集群。

答案 1 :(得分:1)

您将拥有一个群集(构成群集的所有服务器都充当一个群集) 然后Bucket(s)。与数据库类似。 没有"表"在CB。通常在行中的内容现在在docs中。

在SQL中可能有单独的数据库,在CB中,您可以将它们放在一个或多个存储桶中。桶更好地用作逻辑,用法,索引,安全性等分离。请参阅:http://nosqlgeek.blogspot.de/2015/09/how-many-buckets.html

术语池是在版本1.8中引入的,指的是集群中的节点。在这种情况下不再使用。最新版本是4.1 你会看到术语" pool"与团体一起。组是通常用于机架感知/事务区域的节点的逻辑分组。因此,如果您有六个节点,每个机架2个,您可能已定义组(池)1:Rack1组2:Rack2组3:Rack3和Couchbase足够智能,以确保副本文档与主文档不在同一组中

还有连接池,但我不认为你指的是......

答案 2 :(得分:1)

在最新版本的 Couchbase 中,现在支持范围和集合。所以,看起来你的愿望实现了。

https://docs.couchbase.com/server/7.0/introduction/whats-new.html#whats-new-server-700

答案 3 :(得分:1)

从 Couchbase 7(目前处于测试阶段,即将推出 GA)开始,有一些额外的“层”可能会对您有所帮助。

Cluster <-> Server
Database (Catalog) <-> Bucket
Schema <-> Scope
Table <-> Collection
Row <-> Document

这些是粗略的等价物,但取决于您将 Couchbase 与哪个数据库进行比较,该翻译的“左侧”可能在名称上有所不同。

答案 4 :(得分:0)

我终于发现Couchbase中的Cluster层和Bucket层之间没有任何内容。

我使用的唯一解决方案是为所有存储桶名称添加前缀。例如

databasename.users
databasename.articles
...

Couchbase中有一个叫做“池”的东西,但未来可能会有这个特色:What is a couchbase pool

P.S.
My latest layer mapping for Couchbase:

Server
A cluster, a server, eg. localhost

DB
A bucket, eg. mybucket

Table
A document design, eg. dev_users, and a group of 
documents with doc.type=="user" forms the 'users' table.

Pre-select
A view, eg. dev_users/all_users