0

我想使用面向 couchbase json-document 的工作。但我不知道存储和构造数据并在以后检索它的最佳方式是什么。

是否有任何教程可以开始(couchbase.com 上的学习资源没有帮助)?

我正在使用 PHP 访问 couchbase。我有以下示例:

(new document)
user1
{
"uid":1,
"name":"marius"
}

(new document)
planet1
{
"pid":1,
"user_uid":1,
"name":"earth"
}

(new document)
user2
{
"uid":2,
"name":"anyone"
}

(new document)
planet2
{
"pid":2,
"user_uid":2,
"name":"saturn"
}

现在将这些文档设置(插入)到数据库中的最聪明的方法是什么,以及如何通过选择获取(选择)文档。

用 SQL 说,我想 -> SELECT * FROM user,planet WHERE user.uid=1 AND planet.user_uid=1

4

2 回答 2

0

Couchbase 以不同于关系数据库的方式存储数据。

从 Couchbase 中获取数据的主要方法有两种:

键/值。这意味着您给您的文档一个键来查询,然后显然该值将是整个文档。所以对于用户:


user = couch.get(123)

这将返回用户 ID 123 的整个文档。

意见。您可以使用 map/reduce 函数在 Couchbase 中编写视图。很酷的是,这些视图可以以与 CouchDB 中的视图类似的方式访问,因此您可以执行排序和限制等操作。 http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options

在您的 Couchbase 门户中查看设计文档/视图。当你写一个它会给你一个 URL 来测试你的 map/reduce 东西。然后,您可以将参数添加到 URL 以进行额外的工作。

于 2013-03-01T16:17:13.857 回答
0

没有通用的方法来说明您的文档应该如何设计。它确实取决于您的应用程序的特性。写入与读取比率?数据是如何消耗的等等。凭借在沙发上使用视图转换数据的优势,我想您可以制作更多“通用”文档并创建特定视图来转换文档以适合您的用例。当然不是您应该应用于所有用例的解决方案(不要将其视为银弹设计)。

一个经典的例子是博客例子。您应该将评论存储在帖子中还是提取评论并自己驻留并提供参考?这取决于特性。有一些评论更常见还是通常有很多评论?

另一个样本。如果您存储订单文档怎么办。客户应该是订单的一部分还是客户的订单?可以两者兼而有之吗?是的,它可以。我会说,对于文档数据库,您需要对数据重复更加开放。难道客户文档仍然作为客户的“当前视图”存在,他的所有数据和订单都包含客户快照的片段;对应用程序中的订单上下文和一些概述有用,然后使用对实际客户文档的引用?大概。但同样,这取决于您将如何使用数据。

关于 SQL 翻译: http: //www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-sql.html

于 2013-03-14T21:21:25.027 回答