N1QL-запрос, чтобы получить последний документ с таким же другим свойством в результате объединения двух разных документов в couchbase
У меня есть корзина под названием "цены" с двумя различными типами документов "намерение" и "запрос"
"intent" (id = "intent1")
{
"locationDSL": "some_location"
"product": "some_product1"
}
"intent" (id = "intent2")
{
"locationDSL": "some_location2"
"product": "some_product2"
}
"request" (id = "request1")
{
"intentId": "intent1",
"createdDateTime": "2019-04-01",
"status" : "success"
}
"request" (id = "request2")
{
"intentId": "intent1",
"createdDateTime": "2019-05-01"
"status" : "failed"
}
"request" (id = "request3")
{
"intentId": "intent2",
"createdDateTime": "2019-06-01",
"status" : "failed"
}
"request" (id = "request4")
{
"intentId": "intent2",
"createdDateTime": "2019-07-01",
"status" : "success"
}
поэтому у меня есть 2 запроса ("request1" и "request2") для "intent1" и 2 запроса ("request3" и "request4") для intent2,
Мне нужно объединить " intent1 " и " intent2 " с последними запросами (запрос с последним createDateTime), т. Е. " request2 " и " request4"соответственно, а также может фильтровать по некоторым полям последнего дочернего документа, соответствующего" intentId ", поэтому если запрос для" status "=" success ", то он должен только возвращать (intentId2, request4), а не (intent1) , request1), поскольку в последнем дочернем элементе «request2» не соответствует условию
Я могу присоединиться к документам, но это соединение не с последними запросами, но все запросы соответствуют intent.id .
Этот вопрос похож на
[ Фильтрация документов с использованием n1ql
, но мне нужно объединение всех полей в двух документах, а не в одном поле или атрибутах