Pogledajte određenu poruku
Staro 23. 12. 2011.   #23
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

Mislim da je problem u tvojoj logici, da bi to trebalo da radis ovako:
Kôd:
db.test.log.update(
    {ip: '12.34.56.70'}, // ovo je uslov za update: WHERE IP=neki_ip
    {   // ovo su akcije koje treba uraditi:
        $inc: {counter:1}, // inkrementuj counter
        $set:{nesto:'abc', ip: '12.34.56.70'}, // setuj vrednost ovih polja, stavis tu sva polja koja treba setovati
        $addToSet: {ref: 'http://blabla.com'} // u niz ref dodaj vrednost referera
    }, 
    true // ovo je upsert flag, true znaci da ukoliko ne nadje record uradi insert
);
Pisem iz glave, ali tako nekako to ide (izbaci samo ove komentare, ne znam jel radi sa njima)... ovim dobijas objekat koji sadrzi broj pristupa sa odredjenog IP-ja i niz svih referera sa kojih je taj IP dosao. Ako ti treba da znas koliko puta je dosao sa kog referera, onda ne mora ovako nego samo snimas svaki objekat sa (ip, ref) kombinacijom i radis klasicni upsert, a onda koristi map-reduce da od toga dobijes i zbir po IP-jevima. Ali koliko sam razumeo to nije bilo ono sto si hteo?

Pogledaj obavezno dokumentaciju za UPDATE na MongoDB sajtu, tamo sve ovo pise... imas tamo objasnjeno i kako da proveris da li se desio update() ili insert() prilikom upserta, tako da samo RTFM
__________________
Leadership is the art of getting people to want to do what you know must be done.

Poslednja izmena od ivanhoe : 23. 12. 2011. u 01:59.
ivanhoe je offline   Odgovorite uz citat