问题标签 [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 回答
416 浏览

couchbase - 使用复合键获取 Couchbase 多键

在 Couchbase 中查询特定键的 Map/Reduce 视图时遇到问题。

该视图映射 Couchbase 中的一些文档,发出一个复合键和一个值,并调用内置的_statsreduce 函数。我在键 ( group=true&group_level=2) 的第二部分分组,结果正是我想要的。

我遇到的问题是我需要找到特定文档 ID 的“减少”结果,这些 ID 不一定是连续的,所以我不能使用startkeyand endkey

例如,查找文档 ID 2、5、8、18 的结果,使用&startkey=[2, null]&endkey=[18,"\u0fff"]可能会返回 ID 为 3、4、6、7、9-17 的文档的结果。

我正在考虑使用keys=[]参数来指定要查找的文档 ID,但在使用复合键时无法弄清楚如何执行此操作。

这可能吗,如果可以,我该怎么做?

0 投票
1 回答
3006 浏览

android - CouchBase Lite,在查询中排除具有某些键的文档

我有一个带有映射器的简单视图,它发出带有一些键的文档。

有了这个视图,我可以在其上创建查询,使用某些参数,如 setKeys、startKey、endKey、setDescending、setDescending、setSkip 和其他如 couchbase手册中所述。

如果我写

该查询将返回与“用户名”键匹配的所有文档。

但是我找不到一种简单的方法来编写排除(省略)具有某些键的文档的查询(例如与 setKeys() 函数相反)

在ToDoLite 示例中发现了一个 hack 代码如下所示:

请注意,该视图将仅排除您在第一次调用期间传递给它的键ignoreUserId,并在下次调用期间忽略所有其他键(因为它只会在第一次调用期间创建一次视图)

因此,您需要为他们想要省略的每个键创建新视图。但是,如果您有很多要排除的键或经常这样做,那将是低效的和样板的。

你知道任何更好的解决方案或黑客吗?

任何帮助表示
感谢提前感谢

0 投票
2 回答
561 浏览

java - Couchbase:将视图添加到现有设计文档

我可以查询设计文档的视图。我可以创建一个全新的设计文档。我可以删除设计文档。我可以向正在创建的设计文档添加视图,但是...

如何在不通过 Web UI 的情况下将视图添加到已经存在的设计文档中?是否有可能,或者您是否总是必须创建一个全新的设计文档才能对其进行修改。

作为参考,我查看了“couchbase-cli”工具、Python SDK、Java SDK 甚至 REST API 本身。我没有找到一种方法来向设计文档添加视图并将该视图保留在 Couchbase 中,而无需创建设计文档。我是否遗漏了文档中的某些内容?

0 投票
0 回答
77 浏览

couchbase - Couchbase DocumentSize 影响视图可见性?

我正在尝试在 Couchbase 中保存一些较大的文件(0.1 - 10MB,图像)。尺寸从 128x128 到 4096x4096。我现在的问题是:

我无法在View中获取较大文件的密钥。即使在 Couchbase-Console 和stale=false中,它们也只是丢失了

查看代码很简单(告诉我所有的键):

我能够缩小范围:

  • 键名无关紧要
  • "DataBuckets" -> "Documents" 显示 CouchbaseConsole 中的所有条目
  • 所有文件都可以直接使用密钥访问
  • 文件类型似乎无关紧要(jpg、png、bmp)
  • 文件大小很重要。
  • 索引在 2300 KB 和 2800 KB 之间的某个地方发生了变化。包含较小的文档,较大的文档不再包含在视图中(在 Documents-Tab 中,它们在 CouchbaseConsole 中可见)

我无法在文档或其他地方找到有关此的任何信息。仅提到了 20MB 的最大软文件大小。我错过了什么吗?在无法使用视图的情况下删除多个条目会有点复杂。

您正在运行 2.5.1 企业版 (build-1083)

谢谢

0 投票
1 回答
465 浏览

couchbase - Couchbase MapReduce 性能

几个月来,我们一直在 Couchbase 上开发一个新项目,虽然我们已经完成了许多视图,但我们最近才引入了我们的第一个 reduce。

reduce 函数对少于 100 行的索引进行操作,但每当我添加与映射匹配的新文档时,reduce 数据都会被完全破坏并为所有值返回零。它会保持这种状态很长一段时间,5 到 10 分钟,有时更长,然后最终开始输出预期值。

由于索引是如此之小,我想知道我可能做错了什么。我可以让它在数据过时的情况下工作 - 但变为 0 会使它不可行。我希望有人可以查看我的函数并告诉我是否以无法执行的方式编写它们。

地图:

减少:

我们正在运行最新版本的社区版 - 2.2.0 (build-837)。它在具有大量硬件资源和很少使用的开发环境中运行。作为旁注,除了这个小障碍之外,Couchbase 一直很棒。

0 投票
1 回答
86 浏览

javascript - Couchbase 视图自定义减少

我不确定问题的标题是否合适,如果您知道更好的标题,请告诉我;)我只是这样命名,因为我在想是否可以使用自定义 reduce 函数解决我的问题。

我有两种类型的对象:

车辆:

用户:

我想要的是一个视图,它可以返回某个公司的所有车辆。但是公司只存储在 User 对象中。

这是我在 mapfunction 中的进展:

但这只会将公司作为键返回给我,将车辆的 ID 作为值返回。所以我得到一个用户文档。我可以在 map 函数中以某种方式再次遍历文档并根据我的 ids 数组中的 id 获取所有车辆吗?

将公司保存在车辆本身也是不可取的,因为公司不是车辆公司本身,而是零部件公司。

感谢您提供任何帮助。

0 投票
1 回答
2418 浏览

java - Spring Data Couchbase 无法加载视图

我们正在使用 Spring Data Couchbase 项目,当尝试在生产中执行现有视图时遇到以下错误

下面是我们的 Spring Data Repository 定义

谁能提供使用 couchbase 视图执行查询的示例?该文档似乎缺少这样做的示例。

0 投票
1 回答
62 浏览

c# - 对于使用 couchbase 的解决方案,对于 .NET 自定义角色提供程序来说,这是一种合理的方法吗?

我目前正在考虑为 couchbase 组合一个 .NET 角色提供程序,以便在项目中使用。我希望在 2 种文档类型中对此进行建模。

第一个文档类型是应用程序中所有可用角色的简单列表。这使得支持 Add、Delete、GetAllRoles 等变得很容易。这个文档对于每个应用程序都有一个固定的密钥,因此“applicationname_roles”因此从代码的角度来看是众所周知的并且可以快速检索。

第二个文档将用户映射到角色,例如

{“类型”:“roleprovider.user-role”,“用户”:“user1”,“角色”:“role1”,“应用程序”:“app1”}

此文档类型的键将采用“applicationname_roles_username_rolename”格式,这使得测试用户是否处于特定角色的最常见操作变得简单而快速。

为了支持 .NET 角色提供程序的 GetRolesForUser 或 GetUsersInRole 方法,我正在查看使用表单的视图。

因此,对于每个用户到角色的映射,我们都会将 2 行发送到视图中。第一个允许我们在视图中查询用户所在的角色。第二个允许我们查询用户所在的角色。.NET 提供者只需要根据是否查询 GetRolesForUser 或 GetUsersInRole 来为“user:”或“role:”添加前缀,以筛选出它需要的内容。

所以现在的问题是,这一切似乎都是微不足道和合乎逻辑的,但这是我第一次与 Couchbase 合作,想知道我是否陷入了任何陷阱?一个明显的替代方法是使用 2 个视图,但在我的阅读中,我看到它提到最好减少设计文档的数量以及其中的视图数量,请参阅 Perry Krug 在沙发库视图中的回复根据桶讨论,他在此提到尝试“从一个索引生成多个不同的查询”。所以基本上我想知道我上面描述的方法是否是对佩里所说的话的规定,或者我是否只是在欺骗自己并会让自己痛苦。

感谢您的任何指示。

0 投票
2 回答
348 浏览

couchbase - Couchbase - 获取 id 引用的文档的属性

我有一个“产品”文档,它有一个属性“categoryId”来引用“类别”文档。当我获取产品时,我希望能够获取类别的名称,而不仅仅是 id。我知道我应该为此创建一个视图,但我是 couchbase 的新手,我在 google 中环顾四周,但找不到具体的操作方法。

这将是产品文档

这将是类别文件

谢谢!

0 投票
1 回答
459 浏览

couchbase - Couchbase 开发视图在发布到生产环境之前不会显示结果

我在生产Couchbase 服务器上创建了一个非常简单的开发视图

此视图不返回任何结果。在我的本地 couchbase 服务器上测试相同的视图可以正常工作。

将此视图发布为生产视图可以正常工作。

有什么问题?我正在使用 Couchbase 版本:2.2.0 社区版(build-837)