L'agrégation Rapport de recherche/mettre à Jour dans MongoDB

Je suis en train d'apprendre à utiliser MongoDB comme le backend pour une application qui exige de l'utilisateur de récupérer les données avec une certaine fréquence à partir du serveur, et ont remarqué que l'agrégation cadre semble assez puissant.

Si puissant, en fait, que je me demandais si il élimine la nécessité pour moi d'utiliser find() et updateMany() à tous, parmi d'autres opérateurs, considérant que .aggregate() a quasiment les mêmes fonctionnalités de ces autres fonctions.

Quel est l'intérêt d'avoir ces différents systèmes? Est une plus vite que les autres? Pourquoi ne pas simplement avoir le .aggregate() pipeline cadre de son propre chef?

Et surtout, quand puis-je savoir quand utiliser l'agrégat pipeline, et quand la plus simple de .find() et .update() fonctions?

Merci pour votre aide dans la compréhension de tout cela!

0
2019-09-19 01:33:42
source
1 réponses

Un lambda est un type différent de std::function. Vous pouvez ajouter un autre paramètre de modèle pour permettre la transmission de rien remboursables (qui lambdas sont) comme le comparateur de fonction.

template <typename T, typename Predicate>
int count_if(typename linkList<T>::iterator it_start, typename linkList<T>::iterator it_end, Predicate&& cmp ){
    int ret = 0;
    while(it_start != it_end){
        if(cmp(*it_start)) ++ret;
        ++it_start;
    }
    return ret;
}
+0
2019-09-19 07:57:19

Voir d'autres questions sur les étiquettes