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

couchdb - 带有 $or 和 $and 的 CouchDB 索引不起作用,但只有 $and 起作用

出于某种原因,我有以下.find()命令,并且遇到了冲突的索引错误。以下是我仅尝试获取一种类型的文档时的一个工作示例。但是,如果我尝试获取 2 种类型的文档,则由于某种原因它不起作用。

有谁知道为什么会这样?

我的索引文件:

作品:

不起作用:

0 投票
1 回答
94 浏览

couchdb - 在 CouchDB 中创建和查询未知对象键的芒果索引

我有以下对象:

并且需要索引/查询teams数组。问题是 roleAttribution 键是不可预测的。

有没有办法索引和查询对象的所有可能键,直到团队数组?

0 投票
0 回答
52 浏览

database - 在一个数据库中存储大量文档与在不同数据库之间拆分它们对性能有何影响?

我正在开发一个使用 CouchDB 和大约 20 个不同数据库的项目。由于查询单独数据库的限制,我正在考虑将这些全部合并到一个数据库中。但是,我有一种强烈的感觉,这最终可能会成为一个有害的性能决定。该数据库旨在最终用于许多用户和许多不同的文档类型。此外,我的应用程序经常使用 Mango 和 find API 更新文档和查询(我没有使用视图)。

鉴于这些情况,如果我只有一个数据库而不是多个数据库,性能会有显着差异吗?这是一个可以通过水平扩展我的 CouchDB 服务器来实际解决的问题吗?

0 投票
1 回答
1561 浏览

couchdb - CouchDB芒果忽略索引排序顺序

我正在使用带有 CouchDB 的 Hyperledger Fabric(版本 2.2.0,Hyperledger/fabric-couchdb docker 映像附带的版本)。Fabric 有一个限制,它不允许为 mango 查询指定排序数组,因此必须使用索引来完成。

我面临的问题是,无论我为索引字段指定排序“asc”还是“desc”,查询结果总是以相同的顺序出现。

我试图创建的索引(我也宁愿使用assetType作为部分索引选择器,但也没有成功):

查询我正在运行

_解释结果

无论我在索引上使用“asc”还是“desc”,都会产生相同的 _find 结果。鉴于降序排列,我希望 transactionDate“2019-01-02”成为列表中的第一个(为简洁起见,我删除了不相关的字段)

0 投票
2 回答
244 浏览

couchdb - 如何在 couchdb mango 中使用以美元符号 ($) 开头的字段名称定义 _find 查询

许多年前,我们启动了一个项目来管理研究项目的半结构化信息。我们使用的是CouchDB,当时我们可以方便地调用以美元符号($)开头的条目的必填字段{“id”:123,“$type”:“entry”,“$owners”:[ "somebody"],... } 我必须澄清当时 CouchDB 不存在 Mango。现在我想运行查询来查找我的数据库中“$type”为“entry”的所有条目。但是 Mango 会抛出错误,因为 "$type" 不是运算符。

{"$type": "入口"}

有人知道一种无需修复我的数据库名称即可规避此问题的方法吗?

有没有办法逃避名称中的美元符号?

0 投票
1 回答
184 浏览

couchdb - 芒果语法可以在一个查询中使用两个 $OR 运算符吗?

$OR在一个查询语句中放置两个操作时遇到问题。它忽略前面的$OR运算符,只考虑$OR查询中的最后一个运算符。(当查询中只有一个$OR运算符时没有问题。)我想知道我是否做错了什么,是否可以使用 CouchDB 来实现,或者是否有解决方法。谢谢!

我正在使用 CouchDB 作为状态数据库在 Hyperledger Fabric 上运行区块链。(https://hyperledger-fabric.readthedocs.io/en/release-1.4/couchdb_tutorial.html)我绝对没有在 CouchDB 的工作方面经验丰富,所以我可能对它应该如何表现有点无知。

这有点复杂,但我的对象基本上“属于”两个所有者和公司。我想执行查询,这样当我搜索所有者或公司时,它会在两个不同的列中搜索以查看所有者/公司是否存在。

例如,当我搜索 A 公司时,它应该Company A同时搜索company1_idcompany2_id

查询语句:

{"selector":{"docType":"object", "owner_id": {"$in": ["owner_id"]}, "$or": [{"company1_id": { "$in": [" company_id_1", "company_id_2"]}}, {"company2_id": { "$in": ["company_id_1", "company_id_2"]}}], "$or": [{"owner1_id": { "$in" : ["owner_id_1", "owner_id_2"]}}, {"owner2_id": { "$in": ["owner_id_1", "owner_id_2"]}}], "object_id":{"$lt":"99999999999" }}, "排序": [{"object_id": "desc"}]}

预期:获取与上述查询对应的结果

发生了什么:我得到忽略第一个查询的结果,因此它返回与以下查询相对应的结果:

{"selector":{"docType":"object", "owner_id": {"$in": ["owner_id"]}, "$or": [{"owner1_id": { "$in": [" owner_id_1", "owner_id_2"]}}, {"owner2_id": { "$in": ["owner_id_1", "owner_id_2"]}}], "object_id":{"$lt":"99999999999"}}, “排序”:[{“object_id”:“desc”}]}

0 投票
1 回答
468 浏览

couchdb - CouchDB Mango Query - 将值与数组项匹配

如果我有这样的文档,是否有一个芒果查询可用于查找uid签名数组中的uid与根文档中的 匹配的所有文档?

预期的回应只会给我第一份文件。

0 投票
1 回答
70 浏览

couchdb - 如何通过以 $ 开头的属性查找

我尝试按属性查询带有 _find 端点的 couchdb 服务器,以“$”开头(在我的情况下为 $ref)。但服务器总是返回空文档集。

  1. 我有这样的couchdb文件:
  1. 我尝试像这样查询此文档:

但没有返回任何结果。

  1. 查询喜欢

按预期工作。

芒果服务器似乎无法识别 $ref 之类的属性。

我试图用“\$ref”转义属性,但没有成功。(不是真的!!!,见更新)

是否有任何解决方法来查询像 $ref 这样的属性?

0 投票
0 回答
158 浏览

couchdb - 如何从 couchDb 选择器的数组中选择一个嵌套元素?

我正在尝试编写一个过滤器来将数据复制到另一个 CouchDB 服务器。作为过滤器的一部分,我想根据过滤器只选择文档的某些部分。fieldsin可以获取根节点,Selector但是如何选择嵌套元素?

这些是示例文档结构:

是否可以放置一个选择器来选择字段,它是数组中的一个元素。在上面的 Doc 结构中,我可以使用数组“l”中的元素过滤数据,但我只能显示该元素。

如果我使用这个选择器,它会给出“a”数组的两个元素。但我只需要过滤后的元素。

对于上述过滤器,我期待:

我得到的是

可能吗?

0 投票
1 回答
38 浏览

database - couchdb 显示不同的记录计数与分页?

我想计算一下 couchDB 有多少条数据库记录。所以点击下面的 API,它会返回包含记录数的 json。

json

所以我假设总记录doc_count是。2556925569

但是当我设置document_per_page为 100 并开始查看记录时,它会显示第一页的 100 条记录和 2 页的 200 条记录等等。如果我继续这样做,它向我展示的不仅仅是35000记录。

现在我的问题是,如果总记录是25569那么 couchDB 向我显示的记录多于 35000分页?