Couchbase 如何使用N1QL将单值对象列表添加到数组

Couchbase 如何使用N1QL将单值对象列表添加到数组,couchbase,n1ql,couchbase-view,spring-data-couchbase,Couchbase,N1ql,Couchbase View,Spring Data Couchbase,Couchbase bucket中有json文档,如下所示 { "id":"10" "threadId": "thread1", "createdDate": 1553285245575, } { "id":"11" "threadId": "thread1", "createdDate": 1553285245776, } { "id":"12" "threadId": "thread2", "createdDate": 1553285245575, }

Couchbase bucket中有json文档,如下所示

{
  "id":"10"
  "threadId": "thread1",
  "createdDate": 1553285245575,
}
{
  "id":"11"
  "threadId": "thread1",
  "createdDate": 1553285245776,
}
{
  "id":"12"
  "threadId": "thread2",
  "createdDate": 1553285245575,
}
[{
  "id":"10"
  "threadId": "thread1",
  "createdDate": 1553285245575,
}
{
  "id":"11"
  "threadId": "thread1",
  "createdDate": 1553285245776,
}]
我正在尝试创建一个查询,该查询根据group by threadId和createdDate获取文档

我编写了一个类似这样的n1ql查询,但它只是像这样返回documentId

SELECT max([mes.createdDate,meta(mes).id])
from `messages`  as mes
group  by mes.threadId


result: 
    [
      {
        "$1": [
          1553285245776,
          "11"
        ]
      },
      {
        "$1": [
          1553285245737,
          "12"
        ]
      }
    ]
但我想得到这样的结果

{
  "id":"10"
  "threadId": "thread1",
  "createdDate": 1553285245575,
}
{
  "id":"11"
  "threadId": "thread1",
  "createdDate": 1553285245776,
}
{
  "id":"12"
  "threadId": "thread2",
  "createdDate": 1553285245575,
}
[{
  "id":"10"
  "threadId": "thread1",
  "createdDate": 1553285245575,
}
{
  "id":"11"
  "threadId": "thread1",
  "createdDate": 1553285245776,
}]
任何帮助都将不胜感激

SELECT m.*
FROM `messages` AS mes
WHERE mes.threadId IS NOT NULL
GROUP BY mes.threadId
LETTING m = MAX([mes.createdDate, mes])[1];
您可以使用下面的索引和查询,该索引和查询使用覆盖避免获取

CREATE INDEX ix1 ON `messages`(threadId, createdDate DESC, id);
SELECT m.*
FROM `messages` AS mes
WHERE mes.threadId IS NOT NULL
GROUP BY mes.threadId
LETTING m = MAX([mes.createdDate,{mes.threadId,mes.createdDate, mes.id}])[1];

非常感谢您还有@vsr吗?