构建 couchbdb 视图以索引所有 ID 以各种三个或四个字符开头的文档?
Build couchbdb view to index all documents whose ID starts with various three or four characters?
我是 nosql 和视图的新手。想知道是否有人可以告诉我如何建立一个索引,以便它 return 所有不同的文档应用多个不同的键。下面是一个例子。
我有很多文档都具有如下命名约定:
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..
我想要一个可以在 "starts with BBY" 上查询的视图。它将 return 所有以 BBY 开头的文档。甚至 "BBY_December"、"BBY_August" 等
想知道这是否可行以及它会是什么样子。我正在使用 CouchDB,它使用 Mango 来构建索引。如果有人能给我指出正确的方向,那也会有所帮助。
谢谢
我当前的命名约定不需要新索引。我用蒲团找到了:
ip:port/DB/_all_docs?inclusive_end=true&start_key="BBY_Aug"&end_key="BBY_Auh"
你可以这样写这样的视图:
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 来做同样的事情。
我是 nosql 和视图的新手。想知道是否有人可以告诉我如何建立一个索引,以便它 return 所有不同的文档应用多个不同的键。下面是一个例子。
我有很多文档都具有如下命名约定:
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..
我想要一个可以在 "starts with BBY" 上查询的视图。它将 return 所有以 BBY 开头的文档。甚至 "BBY_December"、"BBY_August" 等
想知道这是否可行以及它会是什么样子。我正在使用 CouchDB,它使用 Mango 来构建索引。如果有人能给我指出正确的方向,那也会有所帮助。
谢谢
我当前的命名约定不需要新索引。我用蒲团找到了:
ip:port/DB/_all_docs?inclusive_end=true&start_key="BBY_Aug"&end_key="BBY_Auh"
你可以这样写这样的视图:
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 来做同样的事情。