
Untitled
By: a guest on
May 4th, 2012 | syntax:
None | size: 1.57 KB | hits: 15 | expires: Never
PHP:
$from = strtotime("-120 day");
$to = strtotime("-1 day");
$this->dataAvailable = true;
$db = \MongoConfiguration::instance()->getSlaveDataBase();
$collection = $db->click;
$keys = new \MongoCode('function(doc) { return {"month": doc.impression.ts.getMonth()+1, "year": doc.impression.ts.getFullYear(), "day": doc.impression.ts.getDate() }');
$initial = array('apps' => array());
$cond = array('impression.ts'=> array( '$gte'=>new \MongoDate($from), '$lt'=> new \MongoDate($to)));
$reduce = "function(doc, prev) { if(prev.apps[doc.impression.aId] == null) { prev.apps[doc.impression.aId] = 0 } prev.apps[doc.impression.aId]++; }";
$this->clickdata = $collection->group(
$keys,
$initial,
$reduce,
$cond
);
vs
MongoShell:
db.click.group({
cond: { "impression.ts": {$gte: new Date(2010,5,23,17), $lte: new Date(2010,6,2,17) } },
keyf: function(doc) { return {"month": doc.impression.ts.getMonth()+1, "year":
doc.impression.ts.getFullYear(), "day":
doc.impression.ts.getDate() } },
initial: {apps: {} },
reduce: function(doc, prev) { if(prev.apps[doc.impression.aId] == null) {
prev.apps[doc.impression.aId] = 0 } prev.apps[doc.impression.aId]++; }
});