Requête de plage de dates pour les dernières 24 heures dans le shell Mongo


15

Je configure un travail cron pour collecter les résultats du profileur de base de données MongoDB. Je souhaite collecter les résultats dans un délai de 24 heures. J'ai l'intention d'exécuter la commande mongo avec javascript .

La question est, dans le shell Mongo , comment puis-je écrire une requête pour trouver une plage de dates d'il y a 24 heures? Tel que:

db.system.profile.find({
    "timestamp" : {
        $lte : <current date & time>,
        $gt : <date & time 24 hrs ago>
    }
})

Réponses:



4
db.system.profile.find({ 
 "timestamp" : 
    {     
        $gte:   new Date(new Date().setHours(00,00,00)) ,     
        $lt :  new Date(new Date().setHours(23,59,59)) 
   } 
})

4
Veuillez expliquer ce que fait votre code et en quoi il diffère du code vu dans la réponse acceptée.
dezso

1
db.collection.find(
        {$and: 
                [
                { "status.code":"DELIVERY_PENDING"},
                {"status.createdDtm": {$lte: new Date().getTime()-(1*60*60*1000) }}
                ]

        }
        )

Vous devez ajouter des détails sur la façon dont cela fonctionne et pourquoi cela résout le problème.
Max Vernon

1
Qu'est-ce que "DELIVERY_PENDING"?!
Dan Dascalescu
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.