0

我是 nosql 和视图的新手。想知道是否有人可以向我展示如何构建索引,以便它将返回应用多个不同键的所有不同文档。下面是一个例子。

我有许多文档都具有如下命名约定:

AABA_August-11-2017_2017-06-29_10
BBY_August-11-2017_2017-06-29_10
CECO_January-19-2018_2017-06-08_19
GEL_December-15-2017_2017-06-08_1
Etc..

例如,我想要一个可以查询“以 BBY 开头”的视图。它会返回所有以 BBY 开头的文档。甚至可能是“BBY_December”、“BBY_August”等。

想知道这是否可能以及它会是什么样子。我正在使用 CouchDB,它使用 Mango 来构建索引。如果有人能指出我正确的方向,那也会有所帮助。

谢谢

4

2 回答 2

1

您可以像这样编写这样的视图:

function(doc) {
    var docId = doc._id;
    var p = docId.substring(0, 2); // Or however many chars you want
    if (p === 'BBY') emit(doc._id, doc); // Or whatever kind of key you want
}

然后为备用前缀编写类似的视图。您还可以使用类似于_all_docs带有视图的端点的查询参数 ( http://docs.couchdb.org/en/2.0.0/api/ddoc/views.html )。

我认为使用视图而不是您所做的唯一好处是您可以过滤不必要的字段,进行一些基本的转换等。

考虑到从视图检索_all_docs与从视图检索之间的相似性,看起来_all_docs端点只是类似于自定义视图的索引。但我不确定。

不知道如何使用 Mango 来做同样的事情。

于 2017-08-24T10:53:00.727 回答
0

我当前的命名约定不需要新的索引。我用蒲团找到:

ip:port/DB/_all_docs?inclusive_end=true&start_key="BBY_Aug"&end_key="BBY_Auh"
于 2017-08-23T05:32:29.827 回答