sql >> Database >  >> NoSQL >> MongoDB

Hoe een innerlijke query in mongodb vanuit javascript door te geven

TLDR;

Het mangoest-equivalent zou zijn om eerst de geneste zoekopdracht uit te voeren en de resultaten door te geven aan de aggregatie.

groups.distinct("p", {"enable": true}).exec().then(matchingGroups => {
    return users.aggregate([
        {$match: {"id": {$in: ["0", "1", "2"]}, p: {$in: matchingGroups}}},
        {$group:{_id:"$v", number:{$sum:1 }}}
    ]).exec();
}).then(aggregationResult => {
    console.log(aggregationResult);
});

Uitleg

Bij het uitvoeren van het volgende script in de mongo-shell, gebeurt het dat eerst de innerlijke query (distinct) wordt ingediend en vervolgens wordt het resultaat doorgegeven aan de buitenste query (aggregatie) die vervolgens wordt ingediend voor uitvoering. Dit kan worden bevestigd door een pakkettracering vast te leggen. In de bijgevoegde afbeeldingen kunnen we de eerste indiening van de zoekopdracht zien (pakket 9) het ontvangen antwoord (pakketten 10 en 11), en de verzending van de aggregatiequery (pakketten 12 en 13).



  1. Hoe MongoDB-aggregatiequery naar Laravel MongoDB te converteren door jenssegers

  2. Hoe installeer ik PHP MongoDB-stuurprogramma voor XAMPP op OSX?

  3. Hoe implementeert MongoDB zijn ruimtelijke indexen?

  4. Gegevens selecteren waarbij het bereik tussen twee verschillende velden een bepaald getal bevat