问题标签 [couchdb-mango]

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 回答
3031 浏览

couchdb - 使用 Cloudant 和 couchdb 2.0 的芒果查询索引和查询数组中的项目

我有以下数据库结构:

并且喜欢像在 mongodb 中那样查询它

当我为整个数据库使用文本索引时它可以工作,但这似乎非常浪费:

以下索引不起作用:

Cloudant 查询的正确索引是什么,它不索引整个数据库?谢谢你的帮助

0 投票
1 回答
791 浏览

ibm-cloud - 我应该在 Cloudant 中使用选择器还是视图?

在尝试从以下场景中获取结果时,我对是否使用选择器或视图或两者都使用感到困惑:

我需要搜索一本书并返回书籍的结果加上价格和商店分店名称的详细信息。

所以我尝试使用选择器使用正则表达式进行 Wildsearch

我能够得到结果。得到结果后的想法是使用结果集和查询中的所有 _id 来获取更多详细信息,例如价格和在其他文档上存储分支名称,我觉得这有点奇怪,我不确定是不是正确的方法。

下面是我得到 _id 的结果并将其作为“productId”变量插入后的想法。

所以我要求专家对此提供意见。

另一个问题是如何获取 store_branch_name?是否可以在一个视图中完成,我们可以在其中获取产品详细信息、价格和商店分店名称?还是我需要有几个视图来实现这一点?

预期结果

参考:

关系

店铺

0 投票
1 回答
1577 浏览

indexing - 使用 $or 选择器,此选择器没有可用的索引

我想找回

  • _id的文件1

    或者

  • 带有value === 13AND的文档anotherValue === 56

错误:

此选择器没有可用的索引。

这是我的查询:

索引设置:

0 投票
1 回答
251 浏览

lucene - Cloudant 到 CouchDB

我们正在开发一个使用 Cloudant 作为数据库的应用程序,它是 Couchdb 的一个变体。Cloudant 开始变得对我们来说有点贵,也因为最后几个问题而变得不可靠。我们已经失去了一天与数据库的连接。所以我们决定建立自己的 Couchdb 服务器。

我们实际上有两种选择 CouchDB 1.6 和 2.0 开发者预览版。第二个提供了我们需要的所有功能,如果我们编译它启用全文搜索。第一个没有 Mango Query,没有 Dreyfus 和 Closeau。我们只能安装 couchdb-lucene 来启用全文搜索,但实际上我们在应用程序中大量使用了 Mango、Dreyfus 和 Closeau。

问题是 2.0 是开发者预览版。我不确定是否可以在生产环境中使用它。我正在寻找替代方案,而无需对我们的应用程序代码进行太多更改,例如:是否可以使用 Mango、Dreyfus 和 Closeau 编译 1.6?

0 投票
1 回答
575 浏览

cloudant - json索引中字段的子字符串匹配

我希望能够使用 JSON 索引匹配子字符串,但我似乎无法弄清楚如何做到这一点。

我在数据中有一条data.name属性为A SIGN DESIGN PTY. LTD.. 我的索引定义如下:

是否有我可以使用的选择器来执行子字符串匹配,以便我可以搜索“sign”或“sign design”并拥有“A SIGN DESIGN PTY. LTD.” 包含在搜索结果中?

0 投票
1 回答
2533 浏览

couchdb - $in / $or 查询可以使用索引吗?

我正在通过奇妙的pouchdb-find在 CouchDB 2.0 实例上使用 Mango 查询。

有几次我得到了可怕的no matching index found, create an index to optimize query time警告,即使我使用的索引字段。

刚才我在选择"type": {"$in": ["a", "b"]}或等效项时得到了它"$or": [{"type": "a"}, {"type": "b"}],即使type存在索引。

谷歌搜索(cloudant query docspouchdb-find docsSO question)没有帮助,而在后者@nlawson 说一些谓词($ne在上述问题中,但也许 my $in/$or属于同一个篮子?)“目前没有使用任何索引”

  • 如果我确实在同一条船上,那是什么意思?无法在使用某些谓词的查询上使用索引是芒果后端的限制,还是 pouchdb 的限制?
  • 我做错了什么/是否有索引解决方法来避免这种情况?
    • 更一般地说,是否有我可以阅读的文档以更深入地了解索引的工作原理以及如何对其进行故障排除?

谢谢!

0 投票
3 回答
4456 浏览

couchdb - Couchdb Mango 性能与 Map Reduce 视图

我刚刚注意到,在Couchdb 2.0的发行说明中,提到 Mango 查询推荐用于新应用程序。还提到 Mango 索引显然比 javascript 查询快 2 倍到 x10 倍,这让我很惊讶,因此我有很多问题:

  • Map/Reduce 视图是否正在逐步淘汰?我希望答案是否定的,因为在我看来 Mango 并没有涵盖 Map/Reduce 的所有用例(最简单的例子是 Reduce 本身),而且这种查询风格的灵活性似乎也受到了更多限制。但由于推荐,我更喜欢问:

我们建议所有新应用开始默认使用 Mango。

  • 我们知道 Map/Reduce 视图依赖于 B 树,但我在文档或邮件列表中找不到任何关于 Mango 背后的魔力的见解。芒果对我来说基本上是白魔法。然而,我可以说,深入了解如何在幕后对 javascript 视图进行索引非常有助于避免陷阱、幼稚的实现以及优化性能。有人对 Mango 的工作原理有任何见解吗?索引B树也是吗?由于不再有设计文档,索引何时更新?性能提升从何而来?(这些收益对我来说是违反直觉的,因为在我的理解中,javascript 查询的性能来自于 Map 函数的预计算性质)

我所追求的一方面是对 Mango 的一些见解,另一方面是对 Mango 和 Map/Reduce 在 2.x 时代应该如何共存的概述。

0 投票
0 回答
480 浏览

python - Couchdb 2.0 /db/_find 分页的总行数

我使用 json 数据发布请求(使用 python 请求库):

响应没有 total_rows。我需要总行进行分页。我怎么得到这个?

0 投票
2 回答
681 浏览

pagination - CouchDB 2.0 中的 Mango 查询是否需要 startkey 分页

我一直在寻找这个。我正在运行 CouchDB 2.0,并且了解在检索一组数据时,我可以在使用传统视图或更新的 Mango 查询之间做出选择。

所以我目前正在使用 Mango 查询语法并获得我需要的结果 - 但是我现在需要实现分页。在 CouchDB 2.0 中研究分页时,我发现围绕该主题进行了精彩的讨论:

http://docs.couchdb.org/en/2.0.0/couchapp/views/pagination.html

它表明对大型数据集进行分页的最佳方法不是使用跳过,而是使用 startkey 并执行一种从一页到下一页的链表分页。

所以这对我来说很有意义并且适用于我的应用程序,但是当我转向 Mango/_find API 时,我看不到任何传入 startkey 的方法:

http://docs.couchdb.org/en/2.0.0/api/database/find.html

令人困惑的是,它确实接受了一个跳过参数,但没有 startkey。

有人能解释这里发生了什么吗?Mango/_find 中的性能特征是否有很大不同,以便我们可以安全地在大型数据集上使用 skip?或者我们应该在遍历更大的数据集合时使用带有 startkey 的视图?

在最近的任何文档 AFAIK 中似乎都没有回答这个特定的问题。任何帮助将不胜感激。

0 投票
1 回答
542 浏览

couchdb - Couchdb2 芒果/查找 js api

我注意到所有 couchdb api 助手都没有实现 Mango 查询

我发现 cradle 开始研究它,但似乎他们停止实施,没有关于它的文档。 https://github.com/flatiron/cradle/blob/master/lib/cradle/database/mango.js

有没有支持芒果查找的好js api?

次要:似乎没有人实施芒果查询,为什么每个人都坚持使用 map/reduce 是有原因的吗?

根据给出的评论,我想澄清我的问题:我知道 pouch-find,但我认为这是用于本地存储或可以在浏览器或 nodejs 中找到的本地 pouch 实例,但我想找到一个库我可以用来查询服务器上的 couchdb 数据库。

我现在找到了一个临时解决方案。我使用带有查询功能的摇篮,例如:

所以要进一步解释我的设置。我每个用户使用一个 couchdb。该数据库将使用 pouchdb 同步到浏览器,我可以使用 pouch-find 查询同步的本地副本(这是正确的吗?)。

但是我还有其他未同步的沙发数据库,​​许多用户可以访问这些数据库。为了查询这些数据库,我在上面的例子中使用了 cradle。