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

pouchdb - 如何在 PouchDB 查询中搜索 Revs

PouchDB 和 Mango 似乎都缺少在索引查询中包含文档先前版本的选项。

这样的选项可能类似于:include_revs: true

因此,例如,要在特定时间戳之前检索存储桶中用户个人资料文档的所有版本的列表,它可能看起来像这样:

此功能似乎对于处理合并冲突以及任何了解先前状态很重要的情况非常有用。是否有它丢失的原因?

0 投票
2 回答
1290 浏览

couchdb - 在 CouchDB/Cloudant 中创建新文档之前如何检查重复?

我们想检查数据库中是否已经存在与我们试图保存的新对象的相同字段和值的文档,以防止重复项目。

注意:此问题与更新文档或重复文档 ID 无关,我们仅检查数据以防止保存与现有文档具有相同数据的新文档。

最好我们希望通过 Mango/Cloudant 查询来完成此任务,而不是依赖视图。

到目前为止的想法是:

1)扫描我们试图保存的数据并动态创建一个匹配该文档结构的选择器。(我们不能硬编码选择器,因为我们有很多文档的类型)

2) 如果已经存在与这些条件匹配的任何文档,则查询与该选择器匹配的任何文档的 de DB。

但是我想知道这种方法的性能,因为许多选择器字段不会被索引。

我也更愿意遵循最佳实践,而不是突然创造一些东西,但我无法为这个特定场景找到任何已知的解决方案。

如果你碰巧知道,请分享。

0 投票
0 回答
162 浏览

mapreduce - CouchDB 地图语法

我在 CouchDB (v. 2.1.1) 中有如下文件:

如果我运行一个简单的地图功能,例如:

我得到:

我想尝试消除“空”输出。

我正在寻找一个 CouchDB 数据库,其中包含许多包含小信息片段的小文档,而不是让每个文档包含更多信息的大文档。

我的问题是,我的文档设计是否良好,如果是这样,我如何才能得到我正在寻找的东西,而不是“空值”行。如果我的存储设计不理想,我应该考虑什么样的设计来简化输出,因为我计划有许多小的“文档”。

编辑:

在查看了可能的答案后,我决定拥有我在问题中描述的大量小文档并没有给我带来我想象的那种好处。

我无法为 map 函数找到令人满意的解决方案来获得可读的答案。

但是,我调查了 CouchDB 最近更新中可用的“Mango”查询系统,我能够使用这些查询从我提供的数据库中获得可接受的输出。

这就是我所做的:

未缩小:

输出:

简明扼要的回答。

可以进行排序,但必须对已排序的字段进行索引。对于较大的数据集,无论如何都建议使用索引。

参考:

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

由于我的问题需要一个地图功能,这可能不能被视为一个有效的答案,但对我来说这是一个答案。我在其他数据库上尝试了一点“芒果”查询系统,它似乎比我想象的更有用/更强大,尽管它没有提供总计等方法。

0 投票
1 回答
31 浏览

couchdb - 在唯一生成的文档 (CouchDb) 中搜索

我的文件看起来像

afyyjahg4a9cjdr7056s 和 mdblbahg4b17jdr82c3i 密钥是唯一生成的。我希望 is_deleted 等于 1 个结果集。如何使用芒果查询找到这个结果?

0 投票
1 回答
518 浏览

curl - 使用 curl 挂起的 CouchDB POST 请求

我在 Linux 服务器上安装了 CouchDB v2.2.0。我创建了 5 个数据库:

  • 达斯
  • 模型属性组
  • 我的演示
  • 登记处
  • 验证测试数据库

我可以使用下面列出的 json 文件的内容从 Fauxton 成功运行 Mango 查询。

我可以使用 curl GET 命令从另一台 Linux 服务器成功连接到 model_attriubute_groups 数据库:

curl -v http://my.server.com:5984/model_attribute_groups/_all_docs

我正在尝试编写 curl 命令以从其他 Linux 服务器运行 JSON Mango 查询。

我在一个文件中有我的芒果查询:“mangoReqPay”,ls -l 告诉我它有 221 个字符长。

这是我尝试使用的命令。

当我提交此命令时,我没有得到任何响应,它只是坐在那里等待更多输入。

有人可以在正确的方向上轻推我吗?

谢谢

富有的

0 投票
1 回答
341 浏览

sorting - PouchDB/CouchDB 索引的自定义 unicode 排序顺序(Mango 查询)

我正在使用PouchDB(带有Cloudant远程数据库)在字典 Web 应用程序中拥有一个本地数据库。

我需要一个带有自定义普什图字母顺序的索引(使用阿拉伯语 unicode 字母)。

由于普什图语字母表中的不规则 Unicode 字符,使用(按字母顺序搜索部分单词)的localdb.find查询效果$gte不佳。

是否可以为索引创建基于普什图字母的自定义排序?

Mango 查询语言

0 投票
1 回答
173 浏览

couchdb - Cloudant Search Indexing 布尔值作为字符串返回

我有一个_design/filters在 Cloudant 中命名的搜索索引,它具有以下内容:

我的文档如下所示:

当我进行检索时,我将active属性作为字符串而不是布尔值。有没有办法让它返回一个布尔值?

0 投票
0 回答
795 浏览

nosql - CouchDB Mango 索引的性能问题

我正在做一个项目,该项目需要我在 CouchDB 数据库中搜索近似匹配,然后对结果进行排序。我决定使用 Mango 查询系统,因为我事先不知道将使用哪个字段和排序组合。这部分的近似匹配不是问题,我创建的索引表现非常好。但是,当我对结果进行排序时,即使从 _explain 我可以看到它正在使用我的索引,整个事情也会变慢。

我在这些查询中尽可能明确,因为我发现它有助于 CouchDB 自动找到正确的索引。

这是我毫无问题地进行的普通查询的示例:

其中 arr_one 是我正在查看的数组,我试图在第一个元素上找到一个以 findOne 开头的字符串,在第二个元素上找到一个以 findTwo 开头的字符串。

我的索引的相关部分如下所示:

此查询也运行得非常快,并找到与上面相同的结果,但没有正确排序结果:

使用索引:

现在,这是在搜索和排序中起作用但需要很长时间才能完成的问题查询和索引:

使用索引:

任何试图弄清楚如何优化这一点的帮助将不胜感激。我愿意接受任何建议。

编辑:

我已经简化了问题,但仍然遇到同样的问题。我没有使用数组,而是只尝试使用单个值和单个范围。即使有索引,仍然会得到同样的慢查询。

带索引:

0 投票
1 回答
170 浏览

url-rewriting - 多个参数的 CouchDB 虚拟主机和 URL 重写

我试过阅读 CouchDB 文档,但我发现它在这方面有点含糊(FAUXTON,vhost 规范)。我已经搜索并阅读了 stackoverflow 上“couchdb vhosts”和“couchdb rewrite url”的响应,并尝试应用我可以在那里收集的建议。仍然坚持这一点,如果有人能提供它,将不胜感激一些具体的方向。

我在一个 couchDB 数据库中有大约 1900 个文档。每个文档都有一个“类型”键。我制作了 30 个设计文档,每个“类型”一个。每个设计文档都有一个名为“all”的视图,它返回该类型文档的所有行。

在下面的信息中,dasvm01.com 不是实际的服务器。它位于公司防火墙后面,外界无法访问。我一直在尝试使用它,如果我在任何地方出错,请原谅我。

所以,现在我可以从浏览器执行这样的 GET:

我的直接目标是将其缩短为:

或者

为此,我在 planeidtypes 设计文档中添加了一个 rewrites 函数:

现在我认为我需要更新 CouchDB daemon:vhosts 设置:我尝试了一下,但我真的没有信心,而且它似乎不起作用。在福斯顿,我有:

不确定这是否是: - 关闭, - 远离, - 不是正确的地方, - 只需要引号......

你能告诉我什么?我不明白 Fauxton 中的符号默认试图传达:

最终,我希望/希望允许用户在 URL 上传递多个键:值对,然后将它们重写为 MANGO 查询。用户会传递这样的东西:

这将被重写为 MANGO 查询:

0 投票
1 回答
36 浏览

couchdb - CouchDB 查询列表没有给出任何结果

我正在尝试在 couchDB 中查询以使用代码 ='hi' 进行过滤

这就是我正在尝试的方式:

我没有得到输出。有人可以帮忙吗