gpt4 book ai didi

如果数组字段的计数大于 0,CouchDB 将文档包含在索引中

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:42 25 4
gpt4 key购买 nike

我正在使用 Cloudant,它只是具有更多功能的 CouchDB,我正在寻找用于计算数组中元素数量的语法。具体来说,我正在创建一个设计文档,如果它的字段“颜色”有超过 0 个元素,我只索引文档。如何检查“color”中的元素是否超过 0 个?

{"_id": "_design/geodd",
"_rev": "5-2729b1453b11f81261ddb3cf3f3de72f",
"st_indexes": {
"geoidx": {
"index": "function(doc) {if (doc.geometry && doc.geometry.coordinates && doc.color != []) {st_index(doc.geometry);}}"
}
}
}

最佳答案

在编写 View 时,您可以执行任何 Javascript 代码,因此这更像是一个 javascript 问题而不是 CouchDB 问题。

您的观点的错误是您不能将 javascript 中的数组与相等运算符进行比较:doc.color != [] 将始终返回 false(因为它们不是相同的对象)。

如果您事先知道 doc.color 始终是一个数组,请尝试将其替换为 doc.color.length == 0

如果您不确定 doc.color 是数组,请编写 isArray(doc.color) && doc.color.length == 0

您的 View 代码将变为:

{"_id": "_design/geodd",
"_rev": "5-2729b1453b11f81261ddb3cf3f3de72f",
"st_indexes": {
"geoidx": {
"index": "function(doc) {if (doc.geometry && doc.geometry.coordinates && isArray(doc.color) && doc.color.length == 0) {st_index(doc.geometry);}}"
}
}
}

关于如果数组字段的计数大于 0,CouchDB 将文档包含在索引中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35135925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com