无法在 map 函数中使用 sort()
Not able to use sort() inside of map function
我的 couchdb 中的文档如下所示:
{
docType: "event",
tags: ["bb","aa","cc"],
...
}
我想要我的 couchdb 视图函数发出一个排序的标签数组,所以我尝试了:
function(doc) {
if (doc.docType == 'event') {
if (doc.tags.length > 0) {
emit(doc.tags.sort(), doc._id);
}
}
}
但是这个 (.sort()) 没有按预期工作:结果只显示文档,其中标签数组只有一个实体 (tags.length = 1).
我在 couchDB Slack 频道的帮助下找到了答案。 sort() 想要改变元素在原始数组中的位置,这不是视图函数的意图。您可以看到每个数组的 javascript 引擎异常,要排序并且具有多个条目。之前需要将couchdb的日志级别切换为“debug”。
使用扩展运算符创建新数组解决了问题:
emit([...doc.tags].sort(), doc._id);
我的 couchdb 中的文档如下所示:
{
docType: "event",
tags: ["bb","aa","cc"],
...
}
我想要我的 couchdb 视图函数发出一个排序的标签数组,所以我尝试了:
function(doc) {
if (doc.docType == 'event') {
if (doc.tags.length > 0) {
emit(doc.tags.sort(), doc._id);
}
}
}
但是这个 (.sort()) 没有按预期工作:结果只显示文档,其中标签数组只有一个实体 (tags.length = 1).
我在 couchDB Slack 频道的帮助下找到了答案。 sort() 想要改变元素在原始数组中的位置,这不是视图函数的意图。您可以看到每个数组的 javascript 引擎异常,要排序并且具有多个条目。之前需要将couchdb的日志级别切换为“debug”。
使用扩展运算符创建新数组解决了问题:
emit([...doc.tags].sort(), doc._id);