sql >> Databáze >  >> NoSQL >> MongoDB

meteor dotaz pro všechny dokumenty s jedinečným polem

Existuje obecné nastavení, které můžete použít pro přístup k základnímu objektu kolekce ovladačů, a proto .aggregate() bez instalace dalších pluginů.

Základní proces vypadá takto:

FooAges = new Meteor.Collection("fooAges");

Meteor.publish("fooAgeQuery", function(args) {
    var sub = this;

    var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db;

    var pipeline = [
        { "$group": {
            "_id": "$age", 
            "name": { "$max": "$name" }
        }}
    ];

    db.collection("foo").aggregate(        
        pipeline,
        // Need to wrap the callback so it gets called in a Fiber.
        Meteor.bindEnvironment(
            function(err, result) {
                // Add each of the results to the subscription.
                _.each(result, function(e) {
                    // Generate a random disposable id for aggregated documents
                    sub.added("fooAges", Random.id(), {
                        "age": e._id,
                        "name": e.name
                    });
                });
                sub.ready();
            },
            function(error) {
                Meteor._debug( "Error doing aggregation: " + error);
            }
        )
    );

});

Definujete tedy kolekci pro výstup agregace a v rámci takovéto rutiny pak publikujete službu, kterou se také chystáte odebírat ve svém klientovi.

Uvnitř se spustí agregace a naplní se do druhé kolekce (logicky, protože ve skutečnosti nic nepíše). Takže potom použijete tuto kolekci na klientovi se stejnou definicí a všechny agregované výsledky se vrátí.

Ve skutečnosti mám v této otázce plně funkční příklad aplikace podobných procesů a také používání agregátu meteorických hacků balíček na tuto otázku zde také, pokud potřebujete další reference.




  1. Proč nemohu spustit lua skript v redis po restartu redis?

  2. 5 způsobů, jak vybrat řádky s maximální hodnotou pro jejich skupinu v SQL

  3. Tisk data MongoDB z PHP

  4. mongo - nelze se připojit k serveru 127.0.0.1:27017