如何在CouchDB中执行SQL等效的"DISTINCT"?

Bla*_*ere 14 couchdb

我在CouchDB中有一堆MP3元数据.我想返回MP3元数据中的每张专辑,但没有重复.

典型文档如下所示:

{
   "_id": "005e16a055ba78589695c583fbcdf7e26064df98",
   "_rev": "2-87aa12c52ee0a406084b09eca6116804",
   "name": "Fifty-Fifty Clown",
   "number": 15,
   "artist": "Cocteau Twins",
   "bitrate": 320,
   "album": "Stars and Topsoil: A Collection (1982-1990)",
   "path": "Cocteau Twins/Stars and Topsoil: A Collection (1982-1990)/15 - Fifty-Fifty Clown.mp3",
   "year": 0,
   "genre": "Shoegaze"
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*ver 27

我相信你的map/reduce看起来像:

function map(doc) {
    emit(doc.album, null);
}

function reduce(key, values) {
    return null;
}
Run Code Online (Sandbox Code Playgroud)

请记住使用额外参数进行查询 group=true

  • 当然.请记住,`map`函数接受一个文档,并在`(key,value)`对上调用`emit`.因为我们只关心专辑 - 没有别的 - 我们只发出它.然后,对于每个不同的**键,CouchDB的将调用`减少(键,值)`和使用,作为您查询的结果(同样,我们只是从`reduce`返回`null`因为我们不关心值). (7认同)