MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Problème de publication/d'abonnement à une requête agrégée Mongo

Meteor ne prend pas encore en charge l'agrégation. Vous pouvez cependant le faire fonctionner de cette façon :

Ajouter dans un package d'agrégation :meteor add meteorhacks:aggregate

Utilisez Meteor.call /Meteor.methods à la place, puisqu'un résultat d'agrégation est statique à ce stade. Aucune réactivité prise en charge.

côté serveur

Meteor.methods({
    "getTestList" : function() {
        return Tests.aggregate(
        [{
            $project : {
            "name" : 1,
            "description" : 1,
            "testNumber" : 1
          }
        }, {
          $sort : {
            "testNumber" : 1
          }
        }
      ])
    }
});

Côté client :

Votre modèle

Template.xx.onCreated(function() {

    Meteor.call("getTestList", function(err, result) {
        Session.set("testlist", result);
    });
});

Ensuite, vous pouvez accéder aux données "réactivement" (lorsqu'elles sont prêtes) en vérifiant Session.get("testlist");