Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > mongodb проблема с выборкой по дате


Автор: Noviy 10.4.2012, 15:35
Приветствую. Проблема с выборкой из mongodb. Нужно выбрать записи за день. Проблема в том, что постоянно выберает все записи, как будто по дате не ограничивает. Вероятно проблема в  "query",  но не могу найти в чём. Делаю всё по мануалам. Вот кусок кода
Код


$date = '2012-03-01';
$lastStatisticDate = new DateTime($date);

$lastStatisticDateStart = clone $lastStatisticDate;
$lastStatisticDateStart->setTime(0, 0, 0);
$lastStatisticDate->setTime(23, 59, 59);

//То есть должны получить записи с 2012-03-01 00:00:00 по 2012-03-01 23:59:59
$sales = $this->_mongoDB->command(array(
                "mapreduce" => "statistic",
                "map" => $map,
                "reduce" => $reduce,

                "query" => array('date' => array('$gte' => new MongoDate(strtotime($lastStatisticDateStart->format('Y-m-d H:i:s'))),
                                                                     '$lte' => new MongoDate(strtotime($lastStatisticDate->format('Y-m-d H:i:s')))
                                                                    )
                                           ),
                "out" => array("merge" => "eventCounts")
            ));



Автор: Aliance 10.4.2012, 16:46
Вроде как $gte и $lte нужно писать без кавычек 

Автор: Noviy 10.4.2012, 16:50
Вот пример с офф мануала http://php.net/manual/en/mongodb.command.php, а кавычки должны быть, ибо это не пременные php
Код

$ages = $db->command(
    array(
        "distinct" => "people",
        "key" => "age", 
        "query" => array("age" => array('$gte' => 18))
    )
);  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)