2017-09-23 4 views
0

Je suis donc un peu nouveau sur node.js. Et je ne comprends pas pourquoi les requêtes Aggregate ne fonctionnent pas pour moi. J'ai essayé la même requête au Mongo Shell et cela a fonctionné parfaitement. Voici le code:Node.js: L'agrégation de requête ne fonctionne pas (mongodb)

db.collection("companies").aggregate({$match: 
{$or: 
    [{ $and: 
     [{ left: {$gt: 2}}, {left: {$lt: 11}}]}, 
    { $and: 
     [{ right: {$gt: 2}}, {right: {$lt: 11}}]}]}}, 
{ $group: 
    {_id:null, 
     Sum:{$sum: "$earn"}}}, 

function(err, data){ 

    if (err) throw err; 

    console.log(data[0]); 
    console.log(data.value); 
    console.log(data.Sum); 
}); 

Sortie de la console:

undefined 
undefined 
undefined 

Répondre

1

argument d'agrégation doit être un tableau, parce que fonctionne l'agrégation sur le concept de pipeline où la production du dernier pipeline deviendra entrée pour le pipeline en cours.

db.collection("companies").aggregate([ 
{$match: 
    {$or: 
     [{ $and: 
      [{ left: {$gt: 2}}, {left: {$lt: 11}}]}, 
     { $and: 
      [{ right: {$gt: 2}}, {right: {$lt: 11}}]}] 
}}, 
{ $group: 
    {_id:null, 
     Sum:{$sum: "$earn"}}}], 

function(err, data){ 

    if (err) throw err; 

    console.log(data[0]); 
    console.log(data.value); 
    console.log(data.Sum); 
}); 
+0

Merci de votre aide! – Barnes