问题标签 [couchbase-view]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
205 浏览

couchbase - 存储桶之间的 Couchbase 视图共享

我们是一群开发人员,每个人都有自己的桶——但观点相同。

我想要一个文件,其中包含在源代码管理下定义的视图。

然后,该文件应以某种方式轻松应用于现有存储桶,以便更新该存储桶上的视图。

我怎样才能轻松实现这一目标?

0 投票
1 回答
3253 浏览

couchbase - Couchbase View 不会立即更新?

我只是按照这篇文章来测试 Couchbase 视图。当编辑视图使用 Couchbase GUI 并保存时,视图没有立即更新。

例如。使用 php 脚本将一些数组存储到 Couchbase。并在“dev_sessions”文档中定义一个名为“last”的视图:

然后使用 curl 获取 json 结果。第一次:

第二:

另一个测试,在 php 脚本中添加一个新数组:

再次运行 curl,第一次:

第二次:

如果更改数据或查看脚本,请单击Views - 'Show Results'Couchbase GUI 中的按钮,第一次和第二次不一样。为什么 View 不立即更新?

0 投票
2 回答
4175 浏览

performance - 每个桶的最大沙发底视图数

假设桶中有大量数据(>100GB、>100M 文档、>12 种文档类型),并且假设每个视图只适用于一种文档类型,那么每个桶有多少视图太多了?或者换一种方式问,什么时候应该将某些文档类型拆分为单独的存储桶,以节省处理所有文档类型的所有视图的开销?

我很难决定如何将我的数据拆分为 couchbase 存储桶,以及数据所需视图的性能影响。我的数据由十几个关系数据库组成,其中至少有一半在多个表中包含数亿行。

http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-bestpractice.html文档部分“使用文档类型”似乎暗示在同一个存储桶中有多个文档类型并不理想,因为针对所有文档更新特定文档类型的视图,即使是那些永远不会匹配视图的文档。实际上,它建议将数据分成桶以避免这种开销。

然而,出于性能原因,每个集群有 10 个桶的限制。因此,我唯一的结论是每个集群最多可以有效地处理 10 个大型文档集合。这是准确的吗?

0 投票
2 回答
523 浏览

couchbase - Couchbase 视图的本地测试

我正在开发 Couchbase 视图并且使用控制台受到限制,因为输出行被截断并且不显示 JavaScript 错误。有没有一种方便的方法可以使用 Node.js 之类的引擎在本地测试视图?

谢谢!

0 投票
3 回答
1328 浏览

couchbase - Couchbase Views length - 搜索多个因素

直截了当,我已阅读: http: //www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-bestpractice.html以及 Couchbase 网站上的其他各种页面,但以下问题仍然困扰着我所以我想在推出之前仔细检查一下。

如果我有关于产品的文档,请说:

假设我想要一个介于 100 到 200 之间的产品,那么:

会得到我想要的开始和结束键

说我也想按尺寸搜索,那么

会用正确的搜索键再次得到它。

说我想同时搜索两者,然后:

会得到的。

现在说我要搜索:价格、SellerID、AU 是否可交付、颜色和尺寸....

会得到的。

但是假设我也希望能够按所有期望价格进行搜索,我不能使用上面的,因为价格将为空,因此其余的发射将是“无用的”,因为一切都会匹配.. .

所以我需要一个新的视图查询?例如

if(doc.DocumentType == "productDoc"

问题

这种方法是否正确,因为似乎我需要对每种类型的搜索进行“新”发射调用。所以在.net代码中,我会检查我从用户那里得到的搜索输入,然后调用正确的“发射”(注意:这就是为什么我在发射前面有数字,所以我可以稍后将它们区分开来 - - 为了理智...)。

我不仅关心我必须编写的视图的长度,而且说我稍后会在文档中添加一个字段,例如“折扣金额”,然后我更改视图,其重新索引将是巨大的或? 这是关心吗???

上述结构的可能替代方案???

还是最好只说,

然后当我想要按价格和尺寸的产品时,调用两者并有效地获取文档 ID 的“列表”,然后“交叉”这些列表并查看两者中都有哪些 ID,然后调用以获取文档。这种方法但是对 CB 服务器的调用要多得多,而且我也无法使用内置的 skip、limit 和 startkey_docid 进行分页。这在代码方面似乎也更加性能密集。我假设这是 Couchbase 的“错误”心态,但来自一个心态是“更少调用 DB = 更好”的环境,我可能没有正确地接受 CB 哲学......

如果有人可以请:

  1. 确认第一种方法是正确的...
  2. 第二个是错的

那很好啊。

如果有什么不明白的地方请告诉我...

提前致谢,

干杯

罗宾

其他注意事项:此文档是存储桶中唯一的文档结构。我只会有 1 个视图。10k 文件 ~ish。

0 投票
1 回答
878 浏览

nosql - couchbase 中的复合视图

我是 Couchbase 的新手,正在努力获得一个复合索引来做我想做的事情。用例是这样的:

  • 我有一组“枚举”被存储为文档
  • 每个都有一个“last_updated”字段 - 正如您可能已经猜到的那样 - 存储该字段的最后一次更新时间
  • 我希望能够仅显示自某个给定日期以来已更新但仍按枚举名称对列表进行排序的那些枚举

我创建了一个像这样的 Couchbase 视图:

}

我有一条记录没有设置 last_updated 字段,因此它的时间字段都设置为零。我认为作为第一个测试,我可以过滤掉该结果,然后输入以下内容:

虽然列表按“id”排序,但它没有过滤任何内容!谁能告诉我我做错了什么?是否有更好的复合视图来实现这些结果?

0 投票
1 回答
35 浏览

mapreduce - 选择属性具有两个给定值的文档

我的 Couchbase 数据库中存储了以下文档:

现在我想列出所有documents_props包含final和的文档received。假设我需要这个用于final, received, sent。假设这些属性不是固定的(是自由文本),我能做些什么来促进这一点?

我目前的做法是在应用程序中获取所有内容并进行评估,但这将是一项非常艰巨的工作,因为数据库增长得非常快。

0 投票
1 回答
2851 浏览

mapreduce - 克服 Couchbase 中的查询限制

我们最近从关系型 (MySQL) 转向 NoSQL (couchbase)。基本上它是社交手机游戏的后端。我们在扩展后端以处理越来越多的用户时面临很多问题。当使用 MySQL 加载用户时,由于多个表之间存在大量连接,因此需要花费大量时间。特别是在加载数据时,我们看到了一个巨大的改进,因为大部分数据都保存在一个文档中。

不利的一面是,就查询而言,couchbase 似乎也有很多限制。SQL 查询的 Couchbase 替代方案是视图。虽然我们设法使用 map-reduce 处理了大部分查询,但我们确实很难弄清楚如何处理基于时间的查询。例如,我们需要根据时间戳属性过滤用户。如果时间小于当前时间,我们只需要查看用户:

发生的情况是,一旦用户的时间设置为未来某个时间,它就会从这个视图中豁免,这是所需的行为,但除非我们更新它,否则它永远不会被添加回视图 - 文档只有在它的视图中被重新索引更新。

我们现在的解决方案是先加载 x 个用户文档,然后在我们的应用程序中检查时间。排序是在 user.time 属性上完成的,所以我们得到那些时间小于或接近当前时间的用户。但我不确定这是否真的可以在现场环境中工作。理想情况下,我们希望避免在应用程序级别进行此类检查。

此外,有时我们需要检查多个基于时间的属性,例如匹配。我们当前的策略在这种情况下不起作用,我们经常从视图中获取在应用程序中完成时未通过这些检查的文档。如果已经解决过类似问题的人可以分享他们的经验,我将不胜感激。提前致谢。

更新:

我们尝试使用仅适用于一个键的范围查询。就像我说的,在大多数情况下,我们有多个基于时间的键,这意味着多个范围不起作用。

0 投票
1 回答
362 浏览

nosql - 具有不同键的 Couchbase 动态视图

我对 Couchbase 有疑问。

我不提前知道进行查询的键。Couchbase 为我提供了哪些解决方案。

请记住,我有大数据集,数以亿计。

编辑:我想对存储的集合进行匹配,标准不知道提前或随机设置。这意味着我必须设置编译时间视图。我有哪些选择?

0 投票
1 回答
281 浏览

nosql - Couchbase 复合键搜索

我有以下数组:

首先是字段,而不是运算符,之后是搜索的。我的看法如下:

基本上我想搜索等于 20 和 9 到 50 之间的级别和 100 到 200 之间的汽车的关键 xp。

我可以在 Couchbase 中做到这一点吗?如果可以,怎么做?