2012-11-17 9 views
2

J'essaie d'obtenir cette requête simple pour travailler avec Mongoose sans chance: trouver tous les événements qui se passe demain au centre de conférence. Pour chaque événement, la planification peut être une heure de début spécifique en tant que type Date ou un tableau de dates au format de chaîne "2012/11/16". La même requête ou condition fonctionne cependant quand il n'y a pas de condition pour {place: 'centre de conférence'}, donc j'ai pensé que je pourrais mal composer cette requête. Je n'ai pas de chance jusqu'ici, des suggestions/aide s'il vous plaît? La condition "demain" est un filtre ajouté à la condition "lieu", donc j'utilise le chaînage de la requête.

Merci!

Event.find({place:'conference center'}).or([ 
     { 
     'schedule.beginAtUtc' : { $gte: startOfTomorrow }, 
     'schedule.beginAtUtc' : { $lt: endOfTomorrow } 
     }, 

     { 
     'schedule.dates' : '2012/11/17' 
     } 
    ]); 

Répondre

4

Vous devez combiner les deux champs dans 'schedule.beginAtUtc' un comme un objet ne peut pas avoir deux champs avec le même nom.

Comme ceci:

Event.find({place:'conference center'}).or([ 
    { 
    'schedule.beginAtUtc' : { $gte: startOfTomorrow, $lt: endOfTomorrow } 
    }, 

    { 
    'schedule.dates' : '2012/11/17' 
    } 
]); 
+0

qui a résolu le problème. Merci! – yichen