sql >> Base de Datos >  >> NoSQL >> MongoDB

Problemas para publicar/suscribirse a una consulta agregada de Mongo

Meteor aún no admite la agregación. Sin embargo, puede hacer que funcione de esta manera:

Agregue un paquete de agregación:meteor add meteorhacks:aggregate

Usa Meteor.call /Meteor.methods en cambio, ya que un resultado de agregación es estático en este punto. No admite reactividad.

lado del servidor

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

Lado del cliente:

Tu plantilla

Template.xx.onCreated(function() {

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

Luego puede acceder a los datos 'reactivamente' (cuando esté listo) consultando Session.get("testlist");