0

我是 CouchBase 的新手,我正在寻找一种解决方案来扩展我的社交网络。Couchbase 看起来更有趣,特别是它很容易扩展功能。

但我正在努力为特定类型的文档创建视图。

我的文档如下所示:

{
"id": 9476182,
"authorid": 86498,
"content": "some text here",
"uid": 41,
"accepted": "N",
"time": "2014-12-09 09:58:03",
"type": "testimonial"
}
{
"id": 9476183,
"authorid": 85490,
"content": "some text here",
"uid": 41,
"accepted": "Y",
"time": "2014-12-09 10:44:01",
"type": "testimonial"
}

我正在寻找与此 SQL 查询等效的视图。

SELECT * FROM bucket WHERE (uid='$uid' AND accepted='Y') OR (uid='$uid' AND authorid='$logginid')

这样,如果正在查看推荐页面的用户是该推荐页面的所有者,我可以获取所有用户的推荐,即使是未批准的推荐,或者如果不是,则显示所有给定的用户推荐,其中接受为 =="Y",加上推荐书尚未获得批准,但由正在查看该页面的用户撰写。

如果你能给我一些关于这方面的建议,我将不胜感激。

4

1 回答 1

0

与 SQL 不同,您不能直接将输入参数传递给视图;但是,您可以通过过滤范围在某种程度上模拟这一点。

虽然不完全匹配 SQL,但我建议您简单地根据用户 ID 过滤推荐,然后在客户端进行过滤。我假设在大多数情况下甚至不会有任何待定的推荐,因此你不会真的得到很多不必要的数据。

请注意,可以完全使用视图过滤它,但是它需要:

  • 更大的键或
  • 多个视图或
  • 多个查询

一般来说,建议将发出的密钥变小,因为这会提高性能;所以最好坚持上述解决方案。

于 2015-02-06T18:40:56.030 回答