简体   繁体   中英

MongoDb Date query with php doesn't work

I'm trying to get today's data from mongodb.

Here is a sample document:

{
   "_id": ObjectId("586a284a1f815b55608b456b"),
   "timestamp": "02/01/2017 03:45:36",
   "data": "29",
   "lat": "not available",
   "time": ISODate("2017-01-02T10:15:38.57Z") 
}

And here is the PHP code:

$query = array('time'=>array ('$gte'=>new mongoDate()));
$str = $collection->find($query);
foreach($str as $doc)
print_r($doc);

What am I doing wrong? I'm getting empty output.

You're using greater than and you have no datasets in the future, so there's nothing to be found.

I think that you're looking for $lte lesser than , which will give you datasets from the past.

You have a past date in the data and you are querying for the date greater than or equal to the current date ie now or the future, which will be empty. You may need $lte (less than or equal to) which makes your query :

$query = array('time'=>array ('$lte'=>new mongoDate()));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM