13
我在CouchDB中有一堆MP3元数据。我想要返回MP3元数据中的每个专辑,但没有重复。如何在CouchDB中执行“DISTINCT”的SQL等效项?
一个典型的文件看起来是这样的:
{
"_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"
}
询问能否请您解释一下其中的神奇的是在返回独特价值? – 2010-03-28 21:13:39
当然。请记住'map'函数接受一个文档并在'(key,value)'对上调用'emit'。因为我们只关心这张专辑 - 没有别的 - 我们只发出这个。然后,对于每个* distinct *键,CouchDB将调用'reduce(key,values)'并将其用作查询的结果(同样,我们只需从'reduce'返回'null',因为我们不关心值)。 – 2010-03-28 22:33:19
这有帮助吗? – 2010-03-28 22:34:21