我是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')或 (uid =' $ uid' AND authorid =' $ logginid')
这样,即使是未经批准的用户,我也可以获取所有用户的推荐,如果正在查看推荐页面的用户是该推荐页面的所有者,或者如果没有,则向所有给定用户显示已接受的推荐书==" Y",以及尚未批准的推荐书,但由正在查看该页面的用户撰写。
如果你能给我一些关于此的提示,我将非常感激。
答案 0 :(得分:0)
与SQL不同,您无法直接将输入参数传递给视图;但是,您可以通过过滤范围来在某种程度上模拟这一点。
虽然不完全匹配SQL,但我建议您只根据用户ID过滤推荐,然后在客户端进行过滤。我假设在大多数情况下甚至没有任何待定的推荐,因此你不会真正得到大量不必要的数据。
请注意,可以完全使用视图对其进行过滤,但需要:
一般情况下,建议将发射的键调小,因为这会提高性能;所以最好坚持上述解决方案。