0x5050
0x5050

Reputation: 1231

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.

Upvotes: 1

Views: 1869

Answers (2)

Supradeep
Supradeep

Reputation: 3266

You have a past date in the data and you are querying for the date greater than or equal to the current date i.e 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()));

Upvotes: 2

KhorneHoly
KhorneHoly

Reputation: 4766

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.

Upvotes: 2

Related Questions