J'ai une base de données CouchDB qui a des documents au format suivant:CouchDB View - clés de filtre avant le regroupement
{ createdBy: 'userId', at: 123456, type: 'action_type' }
Je veux écrire une vue qui me donnera combien d'actions de chaque type ont été créés par qui utilisateur. J'ai pu le faire que la création d'une vue qui fait cela:
emit([doc.createdBy, doc.type, doc.at], 1);
Avec la diminution de la fonction « somme » et la consommation de la vue de cette façon:
/_design/userActionsDoc/_view/userActions group_level = 2
ce retourne un résultat avec des lignes juste la façon dont je veux:
"rows":[ {"key":["userId","ACTION_1"],"value":20}, ...
le problème est que maintenant je veux filtrer les résultats pour une période de temps donnée. Donc, je veux avoir exactement la même information, mais seulement en considérant les actions qui se sont déroulées dans un délai donné.
Je peux filtrer les documents par "at" si j'émets les champs dans un ordre différent.
? Group_level = 3 & startkey = [149328316160] & endkey = [1493283161647, {}, {}]
emit([doc.at, doc.type, doc.createdBy], 1);
mais je ne vais pas obtenir les résultats regroupés par userId et actionType. Y a-t-il un moyen d'avoir les deux? Peut-être écrire ma propre fonction de réduction?
merci! Je vais essayer ça –