CouchDB Views: удалить дубликаты * и * упорядочить по времени

Основываясь на отличном ответе на мой предыдущий вопрос , я частично решил проблему с CouchDB.

Это привело к новому представлению .

Теперь следующее, что мне нужно сделать, это удалить дубликаты из этого представления при упорядочении по дате.

Например, вот как я могу запросить это представление:

GET http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following?endkey=[%22c988a29740241c7d20fc7974be05ec54%22]&startkey=[%22c988a29740241c7d20fc7974be05ec54%22,{}]&descending=true&limit=3

В результате получится:

HTTP 200 http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following
http://scoates-test.couchone.com > $_.json.rows
[ { id: 'c988a29740241c7d20fc7974be067295'
  , key: 
     [ 'c988a29740241c7d20fc7974be05ec54'
     , '2010-11-26T17:00:00.000Z'
     , 'clementine'
     ]
  , value: 
     { _id: 'c988a29740241c7d20fc7974be062ee8'
     , owner: 'c988a29740241c7d20fc7974be05f67d'
     }
  }
, { id: 'c988a29740241c7d20fc7974be068278'
  , key: 
 [ 'c988a29740241c7d20fc7974be05ec54'
     , '2010-11-26T15:00:00.000Z'
     , 'durian'
     ]
  , value: 
     { _id: 'c988a29740241c7d20fc7974be065115'
     , owner: 'c988a29740241c7d20fc7974be060bb4'
     }
  }
, { id: 'c988a29740241c7d20fc7974be068026'
  , key: 
     [ 'c988a29740241c7d20fc7974be05ec54'
     , '2010-11-26T14:00:00.000Z'
     , 'clementine'
     ]
  , value: 
     { _id: 'c988a29740241c7d20fc7974be063b6d'
     , owner: 'c988a29740241c7d20fc7974be05ff71'
     }
  }
]

Как видите, «клементина» появляется дважды.

Если я изменю вид, чтобы выдавать имя фрукта / актива в качестве второго ключа (вместо времени), я могу изменить глубину группировки, чтобы свернуть их , но это не решает моих требований к своевременности заказа. Точно так же, с описанной выше настройкой, я могу упорядочить по времени, но я не могу свернуть повторяющиеся имена активов в отдельные строки (чтобы разрешить, например, 10 активов на страницу).

К сожалению, это непростой вопрос. Возможно эта запись чата немного поможет.

Пожалуйста, помогите. Боюсь, что то, что мне нужно сделать, по-прежнему невозможно.

S

7
задан Community 23 May 2017 в 12:31
поделиться