Ich habe eine (Nachricht) Sammlung voller Benutzer mit gelesenen und ungelesenen Nachrichten, ähnlich den unten dargestellt:Wie zähle ich die Anzahl der doppelten Felder in einem Array ohne Duplikate?
userName READ MESSAGES unreadMessages
Paul Otterson 1 0
Vincent Guily 0 1
Paul Otterson 0 1
Vincent Guily 0 1
Paul Otterson 1 0
Ich bin in der Lage „username“ Duplikate zu beseitigen, die mich von diesem Helfer Code auszuführen:
Template.messages.helpers({
'Names': function() {
var loggedUserName = Meteor.user().services.facebook.name;
var lastId;
var counter = 0;
var transactions = Messages.find({userName: loggedUserName}, {sort: {time: -1}}).fetch();
var users = _.uniq(transactions,true, function(messages) {return messages.userName});
users.forEach (function (row) {
counter +=1;
});
console.log(counter+ " number of users in Messages collection");
return users;}
});
Helper:
<template name="messages">
{{#each Names}}
{{userName}} has {{unreadMessages}} Unread messages </br>
{{/ each}}
</template>
Nachgeben dieses
Paul Otterson has 0 Unread messages
Vincent Guily has 1 Unread messages
Da einige der Benutzer eine bestimmte Anzahl der ungelesenen Nachrichten haben, Wie schreibe ich einen Helfer Code die Anzahl der ungelesenen Nachrichten pro Benutzer angezeigt werden? Um zu klären
würde Ich mag die unten erreichen:
Paul Otterson has 1 Unread messages
Vincent Guily has 2 Unread messages
Wir freuen uns auf Ihre Hilfe.
_count die Menge of_ was? Bitte verwenden Sie die informativen Titel. – Tushar
Vielleicht könnten Sie mit [Gruppe] tun (https://docs.mongodb.com/manual/reference/operator/aggregation/group/). Verwenden Sie das [aggregation framework] (https://docs.mongodb.com/manual/aggregation/) –
: [$ group] (https://docs.mongodb.com/manual/reference/operator/aggregation/group/) nach user~~POS=TRUNC und [$ sum] (https://docs.mongodb.com/manual/reference/operator/aggregation/sum/#grp._S_sum) Unreadmessages – joao