Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

aggregate

Zdecydowałeś się na tworzenie interaktywnych stron przy pomocy PHP? Chcesz w łatwy i szybki sposób zarządzać danymi na swojej stronie? Tutaj znajdziesz pomoc w napotkanych przy tym trudnościach.

aggregate

Post 27.07.2017, 13:57:18

Witam, czy istnieje możliwość w php zastosowania funckji "aggregate" tylko do ostatniego tygodnia (7 dni) ? Jeśli tak, to bym prosił o odpowiedź, z góry dziękuje :)
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: aggregate

Post 27.07.2017, 15:24:54

Standardowa biblioteka PHP nie ma funkcji aggregate. Czy możesz doprecyzować swoje pytanie, pokazać kod, który prezentuje problem, cokolwiek? Czy może chodzi Ci o odpowiednie funkcje grupujące dane w MySQL?
Avatar użytkownikakuku
Rafał Kukawski

+∞
+∞

Posty: 19587
Dołączył(a): 14.04.2002

Re: aggregate

Post 27.07.2017, 15:52:03

Kod: Zaznacz cały
$lista = 
          array(
              array(
                  '$match' => array('name' => 'history')
              ),
              array(
                  '$group' => array
                (
                      '_id' => '$id',
                      'userid' => array('$last' => '$id'),
                   'usermoney' => array('$sum' => '$money'),
                   'date' => array('$last' => '$date')   
                  )
              ),
             array(
                  '$sort' => array(usermoney => -1)
              ),
             array(
                  '$limit' => 5
              )
          );
          $out = $collection->aggregate($lista);
          var_dump($out);


Chce żeby według daty ('date'), agregatowało tylko z ostatnich np 7 dni
MongoDB nie MySQL :)
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: aggregate

Post 27.07.2017, 22:32:06

Ktoś pomoże ?
venekus
Posty: 32
Dołączył(a): 28.11.2016

Re: aggregate

Post 28.07.2017, 08:57:49

Rozwiązałem sam, wystarczyło dodać:

Kod: Zaznacz cały
$terazx = round(microtime(true) * 1000);
$ile = 604800000;
$timeleft = $terazx - $ile;

i w $match
Kod: Zaznacz cały
'date' => array('$gte' => $timeleft , ),
venekus
Posty: 32
Dołączył(a): 28.11.2016


Powrót do PHP i bazy danych


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 50440 zarejestrowanych użytkowników.
Najnowszy użytkownik: DellParr


Nasi użytkownicy napisali:

  • 935651 wiadomości
  • w 246577 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)