我是CouchDB的新手,并且我有这样的文档:
{
"credit_type" : "ADJ",
"particular" : "Adjusted hours on 2018-01-01"
}
然后我有一个使用此Map函数的视图
function(doc) {
if(doc.credit_type == "ADJ") { emit(doc.particular, doc); }
}
我的查看网址是这样的:
http://mywebsite.com:5984/_utils/database.html?client_docs/_design/adj/_view/adj
我想做的是能够查询与我的搜索关键字匹配的文档。查找字段是particular
字段。
搜索键是一个类似2018-01-01
的日期,当我输入它们时,它们搜索的网址是类似
http://black-widow.remotestaff.com:5984/client_docs/_design/adj/_view/adj?key=20180-01-01
我应该能够在2018-01-01
字段中获取包含particular
字符串的记录
我还没有任何reduce功能
答案 0 :(得分:0)
要按某个键进行搜索,必须发出该键。
为使您能够执行此操作,建议您将日期可能从particular
字段移到其自己的字段中,这样,您就不必在{{1}上进行任何字符串解析}字段以获取您的日期。
如果您不这样做或不能这样做,则必须解析特定字段的日期。这可以通过this question and answer. *
来实现一旦获得日期,就需要发出它,所以让我举个例子。
particular
在这里,我们从function(doc){
String date = doc.particular.parse.date.here();
emit([date, doc.credit_type], doc.particular);
}
字段中解析日期,并将其与信用类型一起发出。现在,您可以按原样保留doc.particular
语句,但是这样做意味着您可以仅通过if
来搜索任何credit_type
。
现在您的密钥应为ADJ
和2018-01-01
。
*您需要确保CouchDB版本的JS支持这些功能。