Tarih bilgisinde bir aralık sorgulaması yapmak istediğinizde _id dosyanızı bir anahtar olarak yayan harita işlevinizle ilgili bir sorun görüyorum. Tarih bilgilerini ayrı bir alana kaydetmelisiniz. _id bir dize olmalı ve üzerinde startkey-endkey sorguyu doğru bir şekilde gerçekleştiremezsiniz. gibi
şey:
{
"_id": "997b9f758899f102ab58570686001bc2",
"_rev": "1-f87d54608d36cd2e28add67e88e416a4",
"date": [2011, 6, 7, 10, 55],
"volt": 107,
"ampere": 23.5
}
Sonra tasarım belge gibi bir şey dönüşeceğini:
{
"_id": "_design/power",
"_rev": "1-7788287ab51c480c725498eba4f79ddb",
"language": "javascript",
"views": {
"watt": {
"map": "function(doc) {\n emit(doc.date, doc.volt * doc.ampere);\n}",
"reduce": "_sum"
}
}
}
Sen bilgilerin geri senin anahtarına dayalı olarak geliyor nasıl kontrol grubu seviyesini kullanabilirsiniz [ yıl, ay, gün, saat, dakika]. Grup seviyesi 1 bir yıl, 2 ay vb. Toplamları olacaktır. Bunun üzerine, başlangıç ve bitiş tuşları ile filtreleyebilirsiniz.
GET db/_design/power/_view/watt?group_level=2
geri benzer bir şey sizi vermeli: Ayrıca istediğiniz bilgiye alabilirsiniz anahtar aralığı ile gruplama ve filtreleme bırakılıyor
{"rows":[
{"key":[2011,4],"value":1988.5},
{"key":[2011,5],"value":1988.5},
{"key":[2011,6],"value":7778.0}
]}
, ancak farklı bakacağız. değerleri azaltmak ve istemediğiniz ay süzmek önce gruba hem onları birleştiren
GET db/_design/power/_view/watt?startkey=[2011,4]&endkey=[2011,6]
{"rows":[
{"key":null,"value":3977.0}
]}
. Neyse
{"rows":[
{"key":[2011,4],"value":1988.5},
{"key":[2011,5],"value":1988.5}
]}
GET db/_design/power/_view/watt?startkey=[2011,4]&endkey=[2011,6]&group_level=2
, sadece bana da bu şeyleri hatırlamak yardımcı olur ... titiz olmaya çalışıyorum.
CouchDB HTTP View API - Query Options
DÜZENLEME:
Ben saate göre gruplandırmak isteyen sözü fark ettim. Gruplama seviyesini anahtarınızın saat bölümüne kadar devam ettirecektiniz.
GET db/_design/power/_view/watt?startkey=[2011,4]&endkey=[2011,6]&group_level=4
{"rows":[
{"key":[2011,4,9,11],"value":1988.5},
{"key":[2011,5,9,11],"value":1988.5}
]}
Ben benim test veritabanı çok yararlı bilgiler yoktu korkuyorum, ama ben nasıl kullanılabileceğini startkey/endkey ve group_level görüntülenen umut
.
Lütfen örnek belgeleri ve harita fonksiyon kaynağınızı ekleyin –