我想通过一个值来过滤文档,该值包含返回我所做设计视图的键字段中的数组。
// _design/products/_view/all
function(doc) {
if (doc.type && doc.type == 'producto'){
emit([doc.created, doc.user], doc);
}
}
结果:
{"total_rows":3,"offset":0,"rows":[ {"id":"64243f77b5135758d1f0d55c250001f5","key":[1364931254000,"samuelb1311"],"value":{"_id":"64243f77b5135758d1f0d55c250001f5","_rev":"3-50f67780d6388f3aad469dbdd1081b9e","nombre":"limon","precio":250,"user":"samuelb1311","created":1364931254000,"type":"producto"}}, {"id":"64243f77b5135758d1f0d55c2500058e","key":[1364931381000,"samuel123"],"value":{"_id":"64243f77b5135758d1f0d55c2500058e","_rev":"3-c1f893af011ee5a3687b0a9eeedc3467","nombre":"lima","precio":360,"user":"samuel123","created":1364931381000,"type":"producto"}}, {"id":"64243f77b5135758d1f0d55c25000e7a","key":[1364931447000,"samuelb1311"],"value":{"_id":"64243f77b5135758d1f0d55c25000e7a","_rev":"3-2b05730dfcf3407b7335ec029e5cfdc5","nombre":"naranja","precio":25,"user":"samuelb1311","created":1364931447000,"type":"producto"}} ]}
我需要按键中的日期来按顺序对信息进行排序,从第一个插入到最后一个插入顺序,反之亦然。
那么,我如何通过用户过滤信息,例如用户“samuelb1311”或用户“samuel123”?
我试着像startkey和endkey这样的东西,但是这对我不起作用,那就是返回空响应。
感谢您提供的一些信息!
答案 0 :(得分:3)
您需要撤消订单或时间戳以及用户,以便只能获取特定用户的条目。这是因为当您想要使用startkey / endkey时,您只能从按键排序的条目中获得连续范围。然后像这样使用startkey和endkey:
startkey=["foo"]&endkey=["foo","a"]
查看http://wiki.apache.org/couchdb/View_collation?action=show&redirect=ViewCollation。